I don’t know the full history, but here is my take: at the moment, the only value of .mojopkg files is to speed up compilation process. View them as “precompiled headers”, loading from those files is faster than parsing the corresponding source.
From this standpoint, yet, the files should not be visible to the users and are merely an implementation detail. That’s exactly why we propose to add version checking.
Unfortunately they are exposed via the mojo package command and maybe users use those files in different ways, hence the check.
To recap, your summary is correct to the best of my understanding. If/when we have time to speed up mojo compiler, removing mojopkg and replacing those with zipped source would be an option to consider.