Вас могут заинтересовать языки программирования с линейными или уникальными типами, они могут управлять ресурсами (и памятью в частности).Недавние примеры: ATS и LinearML .
Были попытки "управления памятью на основе регионов" (например, Cyclone), но они не были запущены толькоеще - регионы также позволяют (более раннее) восстановление памяти, но их недостаточно (например, есть программы, которые при запуске с управлением памятью на основе регионов будут демонстрировать неприемлемую производительность).Я думаю, что эти две схемы могут быть смешаны.
Возвращаясь к вашему вопросу, некоторые программы ATS могут работать без сборки мусора.(Я не скажу, что такие программы написаны в «функциональном» стиле, например в SML, но в сочетании императивного и функционального стиля первого порядка.)