Only use mutable data structures for performance reasons. Before switching to them, make sure you tried transients first, and if that is still too slow for your use case, than you can switch to mutable data structures. That’s the general best practice.
Now to answer your question. Yes, ClojureScript supports everything the target JavaScript environment supports that Google Closure compiler supports. And Google Closure compiler supports ES6 as an input language, and automatically polyfills everything to ES5 or ES3.
This means you can use ES6 features from ClojureScript, and they will also work in environments that only support ES5.
Only the features that can not be polyfilled are not supported. I’m not sure if there are any, but Map, Set, WeakMap and WeakSet are supported.
(def es6-map (js/Map.))
(.set es6-map "a" 1)
(.get es6-map "a")
Have a look here: https://clojurescript.org/reference/compiler-options#language-in-and-language-out
You can choose what language to emit from ClojureScript, and what language to get back out from Google Closure. You can also activate polyfill if you want: https://clojurescript.org/reference/compiler-options#rewrite-polyfills