Let's look at sub-modules as a mechanism for organizing our code into logical containers that we can then compose into our main application. Leveraging sub-modules is a powerful way to add in new functionality and features into an application while minimizing the impact that it has on the existing code base.
I suppose this is fairly arbitrary, but might you call the eggly.models.bookmarks
module, eggly.models.categories.bookmarks
following the hierarchy of the app? Is there a particular reason why you didn't do this?