vagrant destroy returns 0 if confirmation is declined. Nothing big, but its a bit strange:
$ vagrant destroy && vagrant up
Are you sure you want to destroy the 'base' VM? [Y/N] N
The VM 'base' will not be destroyed, since the confirmation
[base] VM already created. Booting if it's not already running...
[base] Clearing any previously set forwarded ports...
A related problem is that vagrant also exist with 0 if the command is not found--vagrant up will similarly execute if you do:
$ vagrant destroyp && vagrant
(I've made a pull request (#1336) to fix the "invalid command" problem, not quite sure where to start with the "confirmation not given" problem.)
vagrant destroy exits with 1 if any confirmation are declined [GH-923]