>I'm wondering if a language could optimize immutable data structures to use mutable, in place semantics instead of duplication or structural sharing when it is possible.
Yes, many languages (and libs, e.g. for JS) do that.