I think it is by design, although Shaun and Jason will probably clarify
As far as I see it (with my still-not-quite-enough experience with xPDO), modResource represents a single table within the database (the same table as modDocument) so it’s quite easy to use them interchangeably with respects to retrieving a modDocument object.
However, modElement is representative of several database tables, i.e. chunks, snippets etc. - so the problem when using modElement then becomes which type of element is required, and when primary keys are involved that becomes messy