As of 2017, the rules in Canada have been the following:
All new devices in Canada must be sold unlocked, and carriers must offer to unlock existing phones free-of-charge
It seems to me that a carrier should be able to lock a subsidized/financed device until it’s paid off. That makes it possible for people who would otherwise not qualify for financing to have relatively up-to-date devices.
A carrier should not be able to lock a device that’s paid off for any length of time.
Next they should ban phone models that only support carrier specific bands
Why not zero?
I have not bought a phone through my carrier for probably around 10 years. I always buy something factory unlocked, often a LatAm model, and drop my SIM in. GSM was designed with that kind of freedom in mind.
It doesn’t surprise me how much hardware costs are tied to (and inflated by) subscription plans in the US, though.