As pointed out, this has always been the "official" policy. Exceptions have been made, and may be in the future.
Best policy is and always has been to assume that the written contract terms are exactly what you'll get. If you get something better, great - but if you don't, then you have no justification to bitch about it.
Meh, if you find that to be the case, so be it. I believe I do have justification to bitch about it and I will. AT&T has created an expectation to each and every iPhone customer of theirs after letting customers upgrade early every time, that exceptions WILL be made, not may be made.
Think of it this way: If I sign a contract with someone to paint my house blue and they paint it red, and I still pay them for the work, I am waiving the contractual expectation for a blue house - and therefore waive the right to sue them for breaching the contract. If I hire that same person to paint 3 other houses blue and they paint them all red, I cannot, after the 4th house is painted, refuse to pay them because they're all red.
A similar concept can be attributed to AT&T policy: If they stated that under no conditions would anyone be allowed to upgrade until the 2-year contract was up, no one would have this expectation of them to make these "exceptions". They have consistently made exceptions without ever stating that this would no longer be possible, and I'm sure there would be a lot less pissed off people if that were the case because they'd have that understanding going in to the new contract term. A policy is hardly a policy if it's consistently overlooked. Ya dig?
I have been a customer of AT&T for over 10 years at this point, and have upgraded to every iPhone that has been released. Now that I have a family plan, that spends over $300 per month with AT&T, I am told that only one of the phone lines is upgrade eligible, as it's the primary number and according to their records, that number spends over $100 with them; disregarding the fact that the other numbers on the account collectively spend well over that amount. It's a silly, arbitrary policy. But this is becoming the norm when dealing with corporations, isn't it?
Not to mention that when I was inquiring of the early termination fees for the account, it turned out to be significantly less to pay out of the contract and take my business elsewhere than it is to pay the extra $250 per phone they're asking for. Glad to know my loyalty has surely paid off.
I sold my iPhone 4 early assuming I would be able to upgrade to the 4S once it was released, like I've done in the past with all previous iPhones, and suddenly it's impossible to do without either 1) paying less to leave AT&T or 2) pay them $250 extra. Sure, you can tell me all about their losing money on the subsidized cost of the phone and that business is business, but the fact of the matter is that they already rip off each and every one of their customers with their bloated costs. All I'm wanting is to buy an iPhone and extend the period to do business with them. I give zero remorse to a phone company that does business the way they (and every other phone company) do.
It isn't worth it for me to leave AT&T in the long run, but it's also not worth it for me to dish out $250 extra to get the latest and greatest iPhone 4S. So I'll have to buy back another iPhone 4 and sit on the sidelines til the iPhone 5 comes out and get it at the proper subsidized cost. Now that I've been familiarized with this NEW policy of NOT making exceptions, I'll be happy to assume that the contract terms are what I'll get: a whole lotta nothing.