exit, quit, exit() and quit() should exit unconditionally
When you type exit() or quit(), we should always exit unconditionally, like we do with %Exit. But there's a valid use case for a safety check: when an EOF exception is triggered, which on *nix happens via a simple C-d keystroke. That is very easy to touch by accident, especially if you have emacs readline bindings, where C-d on a non-empty line deletes characters, but C-d on an empty line produces EOF. So the difference of a single character on the current line changes the behavior from deletion to ending the program, and it might cost you a lot of state you took a long time to compute.
So the behavior should be:
- exit, quit, %Exit, etc: stop bothering people with questions and just quit.
- EOF exception: ask users by default, this can be configured to not ask anymore if they want (but then, they can't complain if a single misplaced C-d kills their hours-long session).