Somewhat related, at the opposite end of the spectrum: https://en.wikipedia.org/wiki/Crash-only_software
I remember something similar about git. If git encounters an error somewhere, it prints a message and does something like exit(1). This is fine for command line applications.
Then people tried to turn the core git functionality into a library. For a library this is not fine and it required a lot of refactoring.
To be fair, it also makes in-process automated tests harder.
This article comes at a great time for me. I accidentally did exactly what Chris did, just a few days ago. It wasn’t quite that painful, but still embarrassing. I have planned to install safeguards to prevent unintentional shutdown, but that might be the wrong way to approach it. Will think again. Cheers!