Ответ 1

Нет, большинство деструкторов не запускаются на exit().

С++ 98 §18.3/8 обсуждает это.

По существу, когда exit называется статическим объектом, уничтожаются, обрабатываются обработчики atexit, открываются потоки C и закрываются, а файлы, созданные с помощью tmpfile, удаляются. Локальные автоматические объекты не уничтожаются. I.e., нет разматывания стека.

Вызов abort позволяет еще меньше: нет очистки вообще.

Ответ 2

Если ваша ОС разумна (Unix, Linux или недавняя Windows), вызов exit() указывает ядру де-распределить всю память процессов. Стек не нужно разматывать; он просто перестанет существовать.