While the iPhone App Store interface won’t update to an app version that your phone can’t run, iTunes will. And on its next sync, it just deletes any apps from the device whose most recent version, as downloaded by iTunes, isn’t compatible with the device’s OS version.
I was wondering about that — every time a developer updates an iPhone app, they have to decide which minimum OS version to support, weighing the pros and cons of new APIs vs. installed base. I intended to wait a while before I supported OS 4.0 functionality; looks like I was right.
The way it’s done is pretty stupid (well, what do you expect from iTunes, anyway), but… you’ve got to admit it’s not a trivial problem to tackle, either.
I guess the upshot is that you should never use iTunes to update your apps, and only do it on your device. That would be easier if my iPhone 3G was among the hundreds? thousands? millions? that lost wi-fi capability with one of the latest software updates.