Adam Lisagor notes a subtle but significant improvement to the camera with the iPhone 3GS:
My hypothesis: from the moment you launch the Camera app, data is not only streaming to the viewer, but being cached to memory at full resolution, much like a TiVo with a live broadcast. Where there’s been latency in previous versions of the iPhone hardware/software due to processing limitations, those limitations have been overcome in the iPhone 3GS, closing the gap between intention and result by processing the streaming input from a microsecond before the shutter was released. In essence, the iPhone is constantly storing the picture you want before you even take it.
I sort of noticed the same thing subconsciously — a few times where I thought I’d missed the shot based on my experience with the original iPhone and 3G, I’ve gotten the shot with the 3GS. But after reading Adam’s piece and testing it out side-by-side with my old 3G, there’s no maybe about it. As Adam says, something smart is happening here.