This is by design, although the basic internal features and functions of iOS4 are present (this is mainly the stuff that apps will use, so you can be sure that if your app says it needs OS4, then you can run it) not all the OS functions are present, and this includes the background switching functionality as well as a few other things. I can't remember them all right now, but the 3G only got some of the functionality that the iPhone 4 and 3GS got.
Likewise, when OS6 comes out later this year, there are bits and pieces that will not run on an iPhone 4, which will run fine on an iPhone 4S - I think the turn by turn navigation will not be available on the iPhone 4, for example.
This sort of thing has always happened with iOS upgrades, and the hardware at the bottom of the compatibility tree often has to forgo some of the features. Often it's down the memory constraints etc. The key is that none of the missing bits are essential for the running of other apps, so an app that needs OS4 will run fine whether or not you are running it with all the new bits, or only some of them. Apps will only care about the APIs available to them, and you should have the very same ones regardless of the extra stuff on top that is missing.