How stable are the subnet ranges for canister IDs?

So far we had a single canister change subnets ever. You can read more about it here.

Obviously that would mean that canister id ranges can change. Depending on the implementation that would be more or less often

It is already exposed on chain: The registry has an endpoint that will tell you which subnet a certain canister ID belongs to (no matter if the canister actually exists or not)