The Clojure implementation of tools.reader delegates to some runtime support in classes in clojure.lang when reading maps and sets in order to check for duplicate keys, but the ClojureScript implementation delegates to standard lib fns (set and hash-set). This results in no duplicate key checks for the ClojureScript implementation.
That article you linked describes runtime behaviour, not read-time. Read time constructs should always throw on duplicate keys, no matter what the runtime constructs do.
This patch only fixes sets, can you also extend this for map keys? Thanks!
Now also done for maps.