I did it both for structure and for speed. There is no reason for someone just learning to write missions to even look at DllMain. That's just a required technical detail. You only ever muck with that with fairly advanced custom mods, usually involving code overwriting. So, the power to modify it is there for those rare cases when it's needed, and otherwise it stays out of people's way.
Plus, I'd learned a few tips around that time about getting C++ code to compile faster by improving it's organization. That's probably what got me thinking about the structural issue. Besides, shaving 2 seconds off compile time isn't exactly insignificant. That extra compile time slows down the testing/debugging cycle by a perceivable time period, which has negative psychological effects on wanting to do what you're doing. The slow compile times was one of my biggest annoyances about C++ when I first started learning it. Most C++ compilers are notorious for being slow, but then, the grammar for C++ is a huge pain for compilers to deal with.