I kid, but I also wish there was some understanding that once state goes bad (as it very often does during program development) you really do want to restart that program from scratch. Or at least a part of it, I guess - an Erlang process will do.
(Unless you have very good time-traveling tools for the entire program state. Which can be prohibitively expensive).
Mutating state in a live program shouldn't be done carelessly (any more than a schema migration on a live database), but removing it completely from the toolbox is overly restrictive, especially since that also involves removing it from the toolbox while testing and developing.
The better way is tools like Iceberg and its various predecessors (Iceberg is nice because it works with git which has become the industry standard at this point for version control). There, you select down to the individual method what you want to commit and you can push it to other git repos on services like Github.