Javascript strings are immutable and literals are almost certainly preallocated and stored in a table of constants.
Why should using a string keys cause heap allocations?
Also, Java declared java.lang.String as final, so Strings can't be extended to implement clojure interfaces to get nice behavior, like IFn and IKeywordLookup.