Not everyone wants or needs garbage collection and it would be a downright pain to bolt it on now.
Feel free to use one of the umpteen other programming languages that does provide garbage collection, clearly if you are complaining about that you are simply using the wrong tool for the job.
http://www.hpl.hp.com/personal/Hans_Boehm/gc/
http://developers.sun.com/solaris/articles/libgc.html
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n183...
Second, a lot of people use C++ because they need low-level control of memory use and can't tolerate GC pauses. If you're writing the kind of app in which GC is acceptable why not use Java or an even higher level language like Scala instead?
I can count on my hands the number of new and delete I have written in my code in the last three years.
I wrote about it in an earlier thread: http://news.ycombinator.com/item?id=2617990
BTW the behavior you describe has been achieved in the C language family with Apple's C block extension, not that it's relevant since it's in no way standard (aside from Objective-C++)
Not in those where being close to the metal matters.
The real power of GC, though, is freedom to use idioms that are simply impractical, or especially, not exception safe, in its absence (see my comment earlier).