Fala aí Samuel, tudo bem?
O Clojure pode ter implementações nas estruturas de dados mais eficiente do que as de Java. (Lista, Mapas e demais coleções).
Mas tanto em Java quanto e Clojure após compilado, será gerado um bytecode (não necessáriamente igual) e em ambos os casos o JIT (Just -in-time compilation) vai agir sobre o bytecode otimizando o código de acordo com os pontos quentes.
Recursão tende a ser um ponto quente pois ele é executado várias vezes. Logo o JIT tende a agir mais rápido nelas.
Como linguagens funcionais tem essa característica de ter muita recursão, talvez tenha um pouco mais de ganho com o JIT.
Espero ter ajudado.