This is exactly what Value Classes are in Scala. You supply an underlying value which is then interpreted as the value itself, not a reference.
What we're talking about are wrapping compound values. It's a VM implementation thing.
They're not really comparable.
Huge limitation. Not anywhere near the same thing.