> Undefined behavior is prescribed to be unpredictable by language
If you read more discussions with the core team, undocumented is usually treated as undefined. That's now how they view things, at least under my interpretation and given my memory.
E.g. see this good comment by Sean Corfield:
https://groups.google.com/g/clojure/c/yMHHHuK44pE/m/LeBhqdq6BQAJ
Or this by Alex Miller that explicitly talks about UB in the context of a lack of documentation for something particular:
https://groups.google.com/g/clojure/c/VwA2Un2NMxc/m/tptww3xZBwAJ
Or this:
https://groups.google.com/g/clojure/c/HtK4pqsr--8/m/KbWvq8CFCQAJ
And many, many others, all around the media.
> unspecified behavior
Clojure leaves a *lot* unspecified. The language itself doesn't have any specification or a standard, only docs (that don't document every single thing that exists), some spec definitions, and the reference implementation. It has been explicitly stated before that specifying everything is not a goal.
As an example calling `keys` or `vals` or iterating over the same map object will return items in the same order. But a different map object that is equal to the first one might return them in different order. And a map in CLJS will almost definitely return values in an order different from the one in CLJ.
> If that's a bug in the compiler it may be within protocol implementation which can be a serious problem.
That would be a different discussion, if that were the case.