Well, I think some of your statements came from misunderstanding of technical data, but here are some points I would like to elaborate on:
- iOS does support multitasking. What it doesn't do is allow excessive background processing of any application or service. This holds true for all applications, even for those from Apple. It does mean, though, that an app may always try to finish its current task before suspending itself to background. Certain services are given to allow certain tasks to process in background without inhibiting performance of the whole OS. These are location services, network services, and audio services. So at the very least, it is still barely enough multitasking for most users. Just that the device itself isn't multitasking, much. At least not in terms of running multiple applications at the same time, but there is a good reason for that.
- Garbage collection does happen in apps. In fact, it happens very regularly, and apps are always given low memory signals to start flagging their memory space for garbage collection. This has to happen very frequently, or otherwise iOS won't have enough memory for anything. Both the CPU and GPU in iOS have to access the same memory space, so while 256MB looks like a lot, there are times when less than 96MB is available to the CPU, and about 30MB of that has already been reserved for system services, leaving only around 60MB for apps to use. That was the memory strain on the first iPad.
- Users can run extra services when jailbroken without any inhibitive penalty on performance. In fact, "real" multitasking may also be done after jailbreaking without much of a penalty to performance either way. The main issue is still memory shortage. iOS doesn't allow swap file with its virtual memory system, which in turn means that however much RAM the device comes with, that's the absolute in terms of memory usage for everything. You'd quickly run out of memory if you start letting applications process things in the background and then all sorts of crash would happen because something tries to access more memory than it should. But Apple stubbornly refuses to enable swap file despite the fact that the service to manage it is right there. Hopefully they'll do something about it in iOS 5.
So you are right, partially, in that iOS is restrictive. But not in execution method but in memory management method. It's insane to think about how much Apple is holding back iOS by forcing measly amount of RAM on their devices. But at the same time, this strategy also preserves low memory usage for future applications. When they have enough apps, that's when it's safe for them to throw gigs of RAM at the equation and have tons of apps running in the background without having to worry about any of them bogging I/O access for swapping files.
I'd also argue that Apple's way is much better as each app understands best what it needs to preserve in RAM to keep itself from crashing. Swap files would swap everything indiscriminately.