I honestly don't understand why carriers even bother to lock (contract) phones. Surely once a person has entered into a contract, they have to pay off said contract, regardless of whether they actually use phone on that specific carrier. So for example, if someone gets an iPhone 5, on a $40 a month contract (no idea if that's the right ball park, don't live in the US) for 2 years. They will pay $40 a month for 2 years. It makes no real difference to the carrier if they actually use the phone on their network at any point during that 2 years. They'll get the same amount of money (less any out-of-contract spending, but I imagine that is zero/minimal for the majority of users, who will have chosen a suitable plan). In fact, it'll presumably be cheaper for the carrier if they don't use the phone on that network.
So allowing unlocking would not be harmful to the carrier's revenue stream from that customer.
Now of course this only applies to contract phones, in the case of pay-as-you-go (or "prepaid") the cost of the phone itself is subsidised by the carrier on the understanding they will earn revenue from you making calls, sending texts and using data etc. But I am given to believe (correct me if I'm wrong) that the "prepaid" market in the US is quite small, and most phone users are on contracts.
So quite simply, it is hard for me to understand the justification for locking a handset.