I am not an authority on this matter, but my educated guess is that Clojure's implementation never intended to support direct calls to the clojure.lang.Ratio constructor. There is code outside of that constructor when doing math on ratio types that explicitly reduces numerator and denominator to lowest common terms, and returns an integer object, not a ratio object, when the result is an integer. Thus it seems like your constructor calls are intentionally trying to sidestep that by digging into calls intended to remain part of Clojure's internal implementation, not its supported API.