Devices must be able to be unlocked, but a fee is still allowed. I know that Fido previously offered unlocking at a $50, which meant that when we travelled to Europe before I got my new Nexus 4 that we purchased an additional $40 unlocked flip-phone rather than unlocking a phone I already owned.
What is the legitimacy of a carrier lock on any phone that is not part of a contract? Having the unlocking costs (paperwork largely) being part of the contract and automatic (without additional fee) at the end of the contract may make some sense -- but is there any legitimacy to charge an additional fee to remove a non-owner lock for a device that was purchased outright? If anything there should be fines for having put the non-owner lock onto the device in the first place.
We already had a rent-to-own model which solved all the problems and provided clarity in who-owns-what. If cell phone providers want to subsidize phones they can own them (and have owner locks on them) in a rent-to-own, or have a tab (where user owns and there are no non-owner locks). The current dishonest system should be abolished.
This is also only the carrier non-owner lock, and this code of conduct isn't going to deal with the application non-owner locks (The removal of which is sometimes called "Jailbreaking", etc)