One thing we need to figure out about value types is … serialization. (Pause for everyone to wishfully say “can’t we just disallow it for values?”, and three pauses for people to get over this.)
The problem is that serialization today proceeds by mutation, which might be something we could deal with, but the mechanisms for “safer” serialization (readObject, etc) also rely on mutation, and that’s harder. I’m working on a story here, but for now, let’s just put this on the list of legacy pain that we will eventually have to deal with.