I have not used such a configuration, but I believe that it’s fine to have multiple WireGuard VPNs concurrently up, at least from a Linux client standpoint. I have no idea whether your phone’s client permits that — it could well be that it can’t do it.
Your routing table would have the default route go to a host on one of them (and your Internet-bound traffic would go there), but you should be able to have it be either. Or neither — I’ve set up a WireGuard configuration with a Linux client where the default route wasn’t over the WireGuard VPN, and only traffic destined for the LAN at the other end of the WireGuard VPN traversed the WireGuard VPN.
From Linux’s standpoint, a WireGuard VPN is just like another NIC on the host. You say “all traffic destined for this address range heads out this NIC”. Just that the NIC happens to be virtual and to be software that tunnels the traffic.
EDIT:
It sounds like this is an Android OS-level limitation:
https://android.stackexchange.com/questions/261526/are-there-technical-limitation-to-multiple-vpns
In the Android VPN development documentation you can find a clear statement regarding the possibility to have multiple VPNs active at the same time:
There can be only one VPN connection running at the same time. The existing interface is deactivated when a new one is created.
That same page does mention that you can have apps running in different profiles using different VPNs at the same time. That might be an acceptable workaround for you.




Ah, so I bet what they’re doing is looking like a single VPN from the Android OS level, setting a default route into that, and then doing routing in userspace.