I'm modifying the Spur VM to fail becomeForward: when copyHash is true and the target object is immutable. So when we have immutable literals, #normal would be immutable and the become would fail.
However, it seems to me that becomerForward: doing a copyHash is itself a bug. What's the rationale for copying the receiver's hash to the target object? I've seen various frameworks use become to clean-up objects by doing aNoLongerWantedObject becomeFor4ward: nil, and with our current default implementation for becomeForward: that will cause havoc.