At the moment, an ObjectFile Module requires a SourceFile Module.
This is in order to support generate sources.
But that's the exception rather than the rule.
For a library/application built entirely from N sources, there will be 2N+2 modules (N sources, N object files, 1 object file collection, 1 library/application), and N of those do nothing, as they just reside on disk. They occupy memory, and occupy runtime.
If the ObjectFile initialisation could be either/or; either a Source Module (for generated sources) that NEED to do something, or just a path, this would reduce overhead.