These people don't seem to understand how contracts work, nor what they are getting into when they buy a subsidized phone in the first place. The whole point is to get you on the hook for the length of the contract, and the phone company slowly makes up the price of the subsidy through the monthly bills. If they let you off early, you've not paid off the previous phone yet.
Nowhere in the contract does it state that the phone company needs to make sure you can upgrade to a new shiny object every time one comes along. Nowhere does it obligate them to make sure you have the latest and greatest.
Besides, the 3GS isn't that big of a change from the 3G, and AT&T will usually let you upgrade in 18 months, so these spoiled people will just have to wait until Christmas.