Doesn't go far enough
It should be illegal to lock mobile phones to a provider.
When you sign up to a 24 month contract with a provider you have agreed to give them an amount of money every month for that duration. If you choose to take the phone you're given and use it on a different network then that should be your choice, you're still paying for the contract.
We have the same stupid system in the UK, your phone is locked to the contract, at the end of the contract you can request your provider to unlock the phone. The provider is allowed to charge you an "administration fee" for this service. I think Orange currently charge £30.
Locking phones to networks is anti-competitive and should fall foul of competition laws.