Hard to say, it is often characterized as an optimization. Clojure initially target java 5, which had significant costs related to creating many small classes (if you want to generate byte code and execute it, it must live in a class). Java these days has improved on that front to some degree. So it might be fine to just always generate bytecode.
The interpreter code actually looks like it is trying to avoid holding the head, but somehow it still is, there might be someway to fix that.