I think there are some assumptions being made and some conclusions being drawn from observation so let me see if I can explain what's going on with Android and preemptive caching.
First I'd recommend reading
this article by Dianne Hackborn, a Google software engineer.
Android is a compact mobile OS. Unlike desktop OS's it doesn't have the luxury of space to load redundant apps or services. Because of this many of the necessary functions of the OS are part of one of the system apps and then called by others. Because each ROM is developed for specific devices these dependencies will vary by manufacturer and model. This is why it may appear that Android is randomly launching apps.
I can't tell you how many times I've had to help someone reflash their phone back to stock because they deleted a system app they though they didn't need because even though they never used it, it kept launching "all by itself." Apps like the mail client or Facebook or the Gallery etc. all can send messages, but there is only one message transport service within the OS. It may be part of the Facebook app. Every time you send a text or email, the OS calls for the message transport service which shows Facebook as running, even though you've never used it. Remove Facebook and you've removed the ability to send any message from any app. (Facebook is just used as an example).
On a desktop OS, each application can have their own discrete services which can be started and stopped on demand by the app. Removing Outlook won't disable messenger. (okay, it might, but that's Microsoft software ...
installing Outlook might disable messenger

)
Android is an on-demand OS, meaning you expect events to happen immediately without having to wait for an app to launch or service to start. That's why Android wants to load up the free memory. Your phone rings when someone calls, alarms go off on time, news is updated when the screen comes on, etc. For this to happen smoothly, apps are cached based on a priority based hierarchy. I don't know the algorithms used so I can't tell you which gets loaded first or which get dropped first, but it's based on both last time an app is used and the frequency of its use. In that regard, killing off stuff may be counterproductive. If you kill an app that provides a service for another app because you don't use it, the next time you do need it, it will relaunch the killed service and then you'll kill it again. Rinse and repeat. This get's that "unused" app bumped up on the frequently used list meaning it gets a higher cache priority. Vicious circle that.
I only ever kill hung apps anymore and let Android do it's thing. There really hasn't been any performance issues that I've noticed.
It seems to me that most of what you're referring to are system apps, which I have excluded in my discussions about this.
I'm talking user installed apps only. For example, if I use seesmic and don't use it again for 6 months, seesmic will be restarted by the OS periodically because I've used it in the past. However, if I force close seesmic, it will never start again until I start it.
It's the same with other user installed apps.
There are apps that I use daily, and there are apps I use very infrequently. There is no logical explanation for the infrequent apps to launch weekly or even monthly, but if you look, there they are.
It is much more efficient to launch the apps I use regularly instead of the apps I don't. That is why Unix has rc scripts (starts and kills), and inittab (starting at boot, only do it once, respawn) {start again if killed}, etc. It's to give the admin control over what is or isn't starting at any given time.
Android seems to have all apps set to respawn.
My problem is people constantly say don't kill apps, most who regurgitate that info don't even know why they're saying it other than that's what they were told. I base that assumption on the fact that whenever this debate gets going, not one person can neither see or admit that starting random apps isn't possibly more efficient than only starting apps that you use regularly.
The only problem with killing the apps is if you do it automatically, since android does launch apps on its own, having an auto task killer is counterproductive. I wouldn't use cron to run a script to constantly check for and kill an app, I would simply stop that app from starting.
However, force stopping an app is different. The app won't restart, so there is no battery drain because it isn't going to need to be killed again.
I compare killing vs force stopping to using kill on Unix with different flags.
The other problem is when closing an app on Android, the app doesn't fully exit, it's still in BG waiting for me to use it again later.
In Unix if you exit an app, it completely stops, there is no trace of it in memory, no cpu resources, and it even relinquishes any paging space it was using.
Yes, I know, Android is not exactly Unix, but resources are resources.
Perhaps the debate is as simple as some users like me wanting more control since I have that type of control on my servers at the office.
Again, I'm not saying Android's way doesn't work, but someone like me that is use to telling my servers what to do and when to do it, I find it hard to believe that there are those who are ok with their server (in this case android device) doing what it wants.
I'm also not alone.
Issue 14889 - android - Allow choosing the startup applications - Startup manager - Android - An Open Handset Alliance Project - Google Project Hosting