I know my iPhone 4 slows to a crawl when too many apps--nearly all inactive--are still in memory taking up RAM. Killing them all is very helpful to me and the speed and memory increase after doing so are dramatic. I am often down below 30MB of free RAM and at that point the iPhone is extremely slow. (I doubt battery life is affected too much though).
So I have RemoveBG to quickly get my speed and RAM back to usable levels. What I don't like, however, is that it removes the apps from the recently used apps list too. So if I have the time I use the Processes feature of SBSettings to kill open apps. This removes them from RAM but not the recently used apps list.
Oh one other thing... I have often seen iOS shut down my GPS app when it is still actively navigating. Indeed I need to keep checking active processes because Navigon has been killed while other, inactive, apps are left in memory. This is a major pain as if I don't know Navigon was removed from memory I may--and have--miss a turn-by-turn notification.
I think iOS multitasking generally works well, but it is far from perfect. It leaves things in memory that have not been touched in days, closes apps it should not, and generally is not as "smart" as what I would normally expect from Apple.
Disclaimer: I am obviously jailbroken so that could be part of the problem. I also have the Backgrounder app on my iPhone 4--but not on my iPad which is also jailbroken. Even though I have Backgrounder set to use iOS backgrounding as its default on the iPhone 4 my iPad seems much better at handling open apps--and the iPad is iPad 1 so has half the RAM as the iPhone 4. I'm thinking of removing Backgrounder.
Michael