But what would the equivalent "do the expensive preparation 1 time, then re-use copy-on-write memory N times" pattern look like, after reconsidering my life?
It looks like threads and a copy-on-write data structure or memory mapping.
The manpage suggests if you need the child to be the same as the parent to exec a copy of the parent in the child right after forking.
This doesn't allow reusing initialization work via CoW mappings (like GP was asking about).
This is an artifact of doing as the platform is documented to work. You can do what the man page says, or you can do the opposite. The whole article is about how forking on macOS is troublesome.