If it's the first it complicates .obj generation, because the first module is taken for .exe. Long story short there's a lot of code which depends on which module is first.

If we replace file loading with just a fake module like you've mentioned then this check can go away, I'll just add an 'isStub' flag to a Module and avoid calling `onlyOneMain` if it's true.