I think a good approach might be to:
Keep everything as file:// urls given that we need to use urls anyway
for.jar references.
Never call .getPath on a URI / URL - it undoes the URL escaping that we
want, and it returns weird /c:/ things on Windows that don't work as
anything.
Write our own URL
It still isn't working on Windows.
At
https://github.com/clojure/clojurescript/blob/047dbb3d2bd7c3a2e00805ec2f2480e449451521/src/clj/cljs/closure.clj#L750
path is either a file:// url or something
like: "/C:/Temp/cstest2/out/cljs/core.js" - which is a bit mangled, and is
caused by calling .getPat