Well, it might be safe to say that Apple's own engineers stopped testing their Apple apps with 3.x iOS devices, and have created bugs that make these apps unusable. This is to be somewhat expected, Apple has a track record of not-so-great backwards compatibility (on the Mac), but what we also expected was to not get these broken updates forced to us. It's one thing to stop updating the firmware of older iOS models, and another thing breaking them.

They should never have released iOS4 for the 3G iPhone. It was a complete mess. I had to uninstall it off my phone because it ran like treacle.

But by making it available developers came to the conclusion that they only need to bother supporting iOS4, because on the iPhone side the only phone that couldn't run it was the original 2G iPhone.

Some really simple apps in the App Store that don't need iOS4 specific features are still marked as requiring iOS4, making it unavailable to users who iOS4 is not available for - or users who cannot run it for performance reasons.