AT&T has been fairly generous with upgrade amnesty, allowing iPhone upgrades while under contract (which resets your two-year timer, of course).
IIRC, they allowed anyone to upgrade to a 3GS and cut off ~6 months for an iPhone 4, in addition to special iPhone 4 pricing for those under longer remaining contracts.
But yes, I imagine Apple has lost some leverage here now that AT&T is no longer exclusive.