https://github.com/clojure/clojurescript/blob/ddf3cfe14e71b342fbe29ff858c620752ccfc4cb/src/main/clojure/cljs/instant.clj#L25-L38 why does clojurescript add a print-dup for Instant? We have our own in our project, and obviously it breaks if we load clojurescript in the wrong order with our own code. This is in Clojure, not ClojureScript.
Just my 5 c - building CLJS in a completely separate process solves all such and other problems. That is, unless CLJS itself is inherently a part of your backend.
I understand, this came up from unrelated reasons.
you're certainly not the first to trip up on this. as for why... I can think of no good reason
I'm assuming it's just an artifact of implementation at the time. I don't know cljs well enough to know if there's a separate machinery for encoding not using print overrides.