+1 for recur. It was first puzzling to me, and looked like a limitation, until I saw the light. It actually forces you to make sure you not going to cause actual recursion (so no stack overflow).
I also like the [] vector syntax, since you don't need to quote it (no calls expected there).
Everything you've said in the above quoted text is a selling point for me, not a negative thing. I like having the java environment because it brings a lot to the table. I really like (let [...] ...) because it makes it visually obvious to me where the bindings are. I also like explicitly using recur because it makes intent obvious and lets the compiler complain if its not in a tail position.