You could drop the copy-on-write mechanism and just use copy-always for fork and have a base register which offsets all pointer access (analogous to the mostly disused SS register on x86). There could be some mechanism to detect fork-then-exec for performance.
Yep. You need some mechanism for running several times the same code anyway. Anything that solves that, solves the problem of forking without copy-on-write.
The memory model is one of the features of the Mill that I'm most curious about (the other one being access control).