I know “commonly used” is vague, but: do commonly used LoRaWAN modules/libraries (such as used in the TTN UNO) make it easy to change networks?
For Over-the-Air Activation (OTAA) the LoRaWAN R1.0 specifications only define:
An end-device has to go through a new join procedure every time it has lost the session context information.
I guess an application could use a node’s downlink receive window to tell it to commence a new join procedure, or a node could do that when it’s not getting any response from its application at all. But I don’t know if “standard” LoRaWAN modules/libraries can then be programmatically triggered to clear the session data or to trigger a join procedure some other way.
(I am asking this to avoid any vendor lock-in. Like if TTN goes down after a few years. Or to switch from private LoRaWAN networks to TTN, where the private network might still be operational and might not even want to help switching to a different network. For that same reason I would never use Activation By Personalization (ABP) using hardcoded network keys in the nodes.)