If 3.3.1 was just about Flash, I'd agree with Steve. But I think that clause solves a lot more than just Flash. For instance, iPhone apps seem to be horribly unreliable in my experience. And I think part of this has to do with Objective-C on the iPhone's lack of garbage collection. I think that there's a valid point that a system like MonoTouch (which supports garbage collection) would improve the quality of iPhone a…
All that adding a GC would do is move the burden of releasing memory to the GC thread; what would result is that in low-memory conditions (or when the GC runs naturally), you'd have a sudden performance hit as the GC churns through the objects in memory looking for free-able objects. On the desktop, this might not be as much of a performance hit, but on a mobile platform I can see this being an issue.
Likewise, the GC can only do so much. If a developer creates an array and starts stuffing objects into it, but never releases/unreferences the array, those objects will likewise never be deallocated. The onus is still on the developer to write proper code, but now they've voluntarily given up control of memory to a separate process that may not understand the code as well as they do.
Besides all of that, I haven't found iPhone apps to be unreliable at all. The apps I use are generally polished and work fantastically, and crashes are extremely rare (and most of those are due to OOM conditions directly attributed to WebViews).