Tell that to the developers of games and most of them will disagree with you. There are developers out there who want to control every pixel - and do so.
So please elaborate further.
That's because an OpenGL ES app is the exception.
Any other iPhone app is coded at 480x320 points, you've no control over it. That's why any iPhone app you create works on any iDevice (iOS version aside) whether retina or not.
Let me give you a simple example:
You've got the iPhone 3GS (480x320), the iPhone 4S (960x640) and the theoretical iPhone 5 (1440x960), but all iPhone apps are 480x320 points -- that means you get 480x320 points of screen real estate on every device -- and that's why everything is the same physical size across all iPhone models.
You create an app in XCode (not an OpenGL ES app) and then place a button with the dimensions 10, 11, 30, 32.
When that app runs on the 3GS one point equals one pixel, so that button is at 10, 11, 30, 32. When that app runs on the 4S, one point equals two pixels, so that button is at 20, 22, 60, 64, and when that app runs on the 5, one point equals three pixels, so that button is at 30, 33, 90, 96.
There are no iPhone apps coded for 960x640 with the exception of OpenGL ES apps which do need to target the higher resolution, otherwise they're simply upscaled from whatever their targeting (e.g 480x320), but they can target any resolution just fine just like on a computer.
The only thing required of developers is higher resolution assets, and for OpenGL ES apps, to target the higher resolution. (Unless they already have it set to target the resolution of the device and not a fixed resolution.)