Register a Persistent Handler in Addon
Blender only calls register() and unregister() on the top-level module, i.e. the file that has the bl_info dict in it. You're responsible for calling things on your submodules.

You could be importing a module that handles registration on something wildly different. For example, a register() function in some submodule could register a new user here on Stack Overflow. Blender doesn't know which function does which, and thus only calls that one top-level register() function.