spec is mostly useless for tools and IDE's and static analysis. Spec necessitates running your program with an arbitrary runtime complexity. Type checking is done before your program runs. The idea is to remove the need for runtime checks as much as possible.
But clojure is not meant to be developed statically!
It is supposed to be running while developing it. You don't need static analysis if the programm is running and inspectable.