While I understand that people don't want to sacrifice battery life by running lots of background applications, not all background applications kill battery life. By default the iphone runs Mail, iPod, Safari, and Phone in the background. Together all these applications take up about all the memory on the phone. If users could install more background applications, the phone would frequently run out of memory. Even with the default set of background applications, loading a large web page can kill the iPod application.
I would like to see iphone applications be allowed to perform minimal tasks when not running. For example, I want my todo list to update its emblem every morning to show how many tasks are on today's todo list. I would like to be able to set alarms on tasks in the todo list. I want to listen to internet radio while I use other applications.
These kind of things were all supported on my Treo. Background alarms for user installed programs were even supported on my old Palm IIxe with 8mb of ram and a 16mhz processor. There really is no excuse for not providing these features.
While the palm os was designed specifically to allow calling functions of programs that were not running in the foreground, emulating those features with a modern operating system should be easy. For example background tasks could be implemented with small programs that would be executed with tight limits on cpu and memory usage. The system could start these tasks one at a time to avoid using too much cpu. Applications like an internet radio client could be split into a background task that just played the music and a user interface that could be unloaded when not in the foreground.