The iPhone 3G is over 4 years old now and is too limited in processor technology to support the newest OS while retaining some semblance of a decent user experience. It's hard for them to keep up support for a device with such limited capabilities without hindering support of newer devices and restricting the amount of features that can be added. That goes for both Apple and app developers. They had to choose to compromise on behalf of newer devices at some point. Otherwise, iOS 5 wouldn't have been as good, apps wouldn't have been able to take advantage of newer stuff, etc. I am actually surprised it kept getting updates for as long as it did (about 2.5 years). That is an eternity in smartphones.
In other words, to continue targeting for iOS 4.2.1, developers would have to sacrifice functionality. In order to update the 3G past 4.2.1, Apple would have had to sacrifice even more features from the OS. Truth be told, it should have never gotten iOS 4 to begin with. It's mind bogglingly slow on that OS.
Once an app has been updated to require higher than 4.2.1, the only option is if you still have the old one in your iTunes library or in your trash folder. If you find it in your trash folder, you could delete the new app out of your library and drag the older version back out of the trash, then double-click it to add it back to iTunes.