There should have been a fork+exec that would also do all the stuff everybody is obliged to code, anyway, between them.
Some programs would still fork, grovel around, and exec if the combined thing didn't do everything they need exactly the way they need, but the copying page tables and file descriptors, and marking everything read-only, is mostly wasted, as is the parent process needing to fault on all those pages. I wonder whether, if a COW page drops back to one reference, it is also marked back to writable, or if the fault has to happen anyway.