Tengo entendido que el ClassLoader predeterminado utilizado en Java (y por lo tanto, Clojure) se mantiene en los punteros a cualquier clase anónima creada, y por lo tanto, en lambdas y cierres. Estos son nunca basura recolectada, por lo que representan una "pérdida de memoria". Se está realizando una investigación para Java 7 u 8 (https://blogs.oracle.com/jrose/entry/anonymous_classes_in_the_vm) para agregar un ClassLoader anónimo que no conservará referencias a estas funciones. Mientras tanto, ¿cómo las personas que trabajan con aplicaciones de larga duración en lenguajes como Clojure y Scala fomentan el uso de estos constructos?Clojure closures y GC
¿Existe alguna posibilidad de que Clojure pueda proporcionar su propio ClassLoader anónimo, extendiendo el sistema uno, pero sin mantener las clases creadas?
¿Qué te hace pensar que todavía no hace esto? Echa un vistazo a Compiler.java; buscar llamadas a makeClassLoader. – bendin