_Comment made by: mfikes_
The attached patch essentially eliminates all code in the case that {{cljs.pprint}} is required but never used. (Some small amount of code remains owing to the need to preserve some public {{defmulti}} s.) But, as soon as something like {{pprint}} or {{cl-format}} is used, most of the code is brought back in as non-dead.
In terms of runtime performance, at the REPL, {{pprint}} ing
{:a 2, :b [1 2 3], :c {:x 1, :y :kw}, :d [1 :ab {:x 1}], :e "string"}
is about 10% faster, perhaps owing to the use of {{case}} constructs over {{defmulti}}. The same is about 20% faster under {{:advanced}}. (Perhaps the revisions are amenable to Closure optimization.)