Oh, I think I see... this has nothing to do with core.cache but to do with your understanding of the core constantly function: it always evaluates its argument (since it is a function), before returning a function of one argument (that returns that precomputed value).
This is just how Clojure works.