Я вижу, тут много мутно-философских вопросов задают, и тоже захотел, лол.
Читал я недавно статью, написанную инженером, работающим над оптимизирующим компилятором Java. Одна из техник — замена создания объекта в куче на стек (и выведение из-под контроля сборщиком мусора), если позволяет контекст (объект используется только внутри функции). Ну и подумал, а были ли попытки сделать ЯП с "полуручным" (вариаторным?) управлением памятью, где бы было можно явно указывать, что объект размещается на стеке и чистить за ним не надо. Ну а при создании в куче, чтобы им управлял сборщик. Было бы лучшее из двух миров — RAII и отсутствие утечек. Или это не нужно как раз потому, что оптимизирующие компиляторы сами разбираются, а синтаксис проще держать универсальным?