It seems you really like perl - respect.
I think that the transpiler for cljs is it’s best part. The issue I have with cljs is with the google closure dependency as well as the language mismatch (ie. JS has both undefined and null and it’s intrinsically async). It’s not the transpiler. But if we follow that logic, NQP and moarVM is also a moving target because you’re going to be writing to target perl. You’d be better targeting LLVMIR which is what emacs is doing.
The point I was making about metaVMs with RPython as the comparison. Even though the claim is that you write a compiler and it can target everything, the reality is that it adds a tremendous layer of complexity. RPython was written to build a runtime faster than CPython. The end result is PyPy and it’s great. There is also a clojure implementation written in RPython called Pixie. But RPython is too much like Python → just as NQP is too much like Perl and the idiosyncrasies of the parent language can leak into the metaVM implementation (ie, python dicts throw an error when accessing a unknown key instead of returning a nil). So I’m just suspicious of this approach. I’m not familiar at all with Perl but your initial ask to write clojure in NQP will have the same issues as Pixie.