そもそもプログラムが正気 (状態の一貫性や満たすべき条件) を失った時点で当人に後始末をさせるのは気休めでしかなくて、根本的には OS が強引に後片付けを引き継ぐべきという考え (OS 越しでなくハードウェアと直に対話している特殊なアプリとかは別として)
で、 OS に後片付けをする能力があるのなら、 abort が野蛮だろうが何だろうが、狂ったプロセスが後片付けをしたつもりだろうが何もせずすべてを投げ出そうが、最終的に OS がやることをやるので、であれば abort はやっぱりプロセスを速やかに容赦なく殺すべきだと思うんですよ
そもそも本当に OS の後片付けをあてにできない状況なら SIGABRT をフックしてクリティカルな後始末だけしたりみたいなことはできるはずで、 abort 後に許される処理なんてそのくらいですよ
atexit とか at_quick_exit で登録された後始末さえ呼ばないものなんですよ abort は
あーいや SIGABRT にフック付けられるかはわからないか。
@lo48576 https://developercommunity.visualstudio.com/content/problem/236146/stdabort-erroneously-calls-back-global-destructors.html
今回の件とはあまり一致しないけど「std::abortを呼んでも、互換性のためにdllのExitProcessを呼ぶようになっている。これが嫌ならTerminateProcessを呼んでくれ」とMSが言ってるほどなのでなんかあるんだろう。