2g to 3g was primarily a looks/exterior update, other than the 3g reciever, the phones performance was identical. 3g to 3gs was entirely a performance update, the look is identical. Some people care a lot more about the outside look of their phone than performance, some people are the opposite. Whichever you are the upgrade targeting you will come out every 2 yrs when your contract hopefully expires. Releasing performance upgrades each yr could make things tough for the app store developers who have to test and design their apps for every hardware iteration and piss off people who don't care that much about looks but need to have the fastest hardware. Changing the look each yr would piss off accesory/case makers and the customers that see their phone as a fashion statement. Meanwhile by not changing the look when the performance bumps up you can feel better not upgrading since you feel that atleast your phone looks the same as everyone elses. As long as cellphone companies lock people into 2 yr contracts rather than 1 yr contracts, this approach makes the most strategic sense for both Apple and for consumers.