As an iPhone developer myself, I'm in favor of the multitasking prevention. Users complained about this lack of feature.. they wanted to use their phones and have some programs in the background, say the techspot ficticious app for example, and be notified without "opening it" about new messages or something like that ( something that the blackberry uses ).
If you own a blackberry device, or have owned one.. I'm sure I speak for everyone that at some point the phone just gets frozen and dumb. This is because running background processes "concurrently" tends to eat up important resources needed by all programs, such as processor time, battery life, and chunks of memory.
The funny thing is that this is just a simulation, see, one actually believes that many programs are running at once. This illusion is created by the OS, which implements specific scheduling algorithms and preempts programs here and there and making sure the processor is never idle. The phone is actually running one program at a time. What does this mean? the more programs you run in "the background", the more programs the OS has to deal with, and resources just get depleted.
This can be safely assumed since all iPhone, Ipod devices are uni-processor systems.
Keep in mind, though.. the iPhone OS.. since it only allows you to run a third-party app at a time, if the applications eats up ( uses ) a lot of memory, or while you are using it it starts allocating too much memory.. the iPhone automatically shuts the program down ( no wonder when you use a third-party app, suddenly, it shuts down! ). This conservative memory management scheme allows the iPhone to run efficiently without interrupting response time ( which is what the user is interested in, a phone that works while using any program! )
If they attempt to allow "multi-tasking" ilusion in the iphone, and permit the feature to run programs "concurrently", the net result would probably be disastrous. Also, assuming they do this.. suppose you run many programs.. due to the conservative memory management techniques.. some programs in the background will probably shutdown. If the memory management scheme shuts down a program while you are running it ( and only running one program at a time ), imagine the result running multiple programs.. what if you run games? gets complicated.
Of course the feature can be implemented, but this will take plenty of research and test cases, the best solution is an attempt to give this ilusion, but also to be very selective as to what "priviledges" a program can have while running in the background... with the intention to be as conservative as possible for the iphone to run smoothly. Don't expect to be running multiple programs and yet see those nice animations going on.. ( a thread gets spawned for the animation procedures, therefore "more concurrency" inside it )
When they "promised" the feature that other phones had, such as being notified by a program running in the background of something, they actually did come up with a solution. But that tooks months from the promised day. This solution was elegant, since it allowed to programs ( applications ) to remind you of something ( say a facebook message ) on your phone. The difference is that you didn't need to open the program at all!!!! the program doesn't actually run in the background!