Surprised this was written in Java - I thought Lisp did well in this area and Clojure is right there on the JVM.
The proper use for Clojure is to express higher-order application logic more concisely, not to implement high performance math algos.
- areduce / amap
- Uncleaned data is often of Object type (due to missing or invalid values) upon which one can apply the complete core.reducer functions without intermediate representations. In Java this would be horrible.
Still, you're right in the sense that Clojure execution isn't fast than Java's, just its development.