I believe AT&T and Apple's fault lies not on the pricing of new iPhone, but on not having done a good job explaining why they can't let existing customers have the same deal.
When you serve your customer hot coffee, you want to warn your customer that the coffee is hot. Yes, he ordered hot coffee and you served him what he asked for. So, "be careful, it's hot." may seem unnecessary, but in reality, that simple warning really does help. People are simple creatures.
Plus, Apple's fault is that they only focused on the presentation of revealing the great low price for iPhone to wow people again, they failed to anticipate how that may make some passionate iPhone lovers feel left out and even cheated although it's perfectly fair under contract.
Never expect your customers to be reasonable. Do your best to foresee any potential problem and deal with it before it blows up on your face.