But the longer I've been coding, the greater and greater benefit I see to more functional approaches - which pretty much require garbage collection - and persistent data structures like you see in Clojure.
Этого я не понимаю, слишком плохо разбираюсь в функциональных языках. Они кажутся мне математическими упражнениями без настоящих применений. А с другим согласен:
Но идиомы и паттерны - это опыт: "такой подход работает". Там, где их нет, обо всём надо подумать заново. Так что и тут не всё однозначно.