I have never shared a notebook with anyone without first restarting the kernel and pressing "run all cells". If the output is what I want to share, I share it. Otherwise I fix things, and repeat.
I am perplexed that we need tools to do something so sensible.
Absolutely but there are cases where doing that is not practical. For instance machine learning training tasks that can take a long time to converge (months even). There are good arguments that long running tasks should not be in a notebook but they often find themselves in notebooks regardless especially in the ML domain.
That really sounds like a mismatch: Jupyter is, at the end of the day, a REPL; it seems like the exact opposite of the appropriate tool for anything that takes a long time to run.
Yes, you can use the metadata to mark cells non-editable and non-deletable. Of course, nothing is stopping the operators from editing the metadata. So use this at your own risk.
I am perplexed that we need tools to do something so sensible.