@olafurw I'm both honored and deeply humiliated that a lot of these comments are from me, from the original Linux port I did at Loki Software.
The _exit() is there specifically because C++ game code back in the day was loaded with static destructors that usually only did two things: deallocate memory, and crash. Since one was unnecessary and the other disastrous, we'd clean up just the crucial pieces and _exit() at the end to kill the process without running them.