sys.modules辞書の内容が気になります。たとえば、compilerパッケージをインポートすると:
>>> import compiler
>>> for k in sys.modules:
... if k == 'compiler' or k.startswith('compiler.'):
... print k
...
compiler.sys
compiler.ast
compiler.token
compiler
compiler.consts
compiler.warnings
compiler.transformer
compiler.struct
compiler.parser
compiler.symbol
compiler.imp
compiler.visitor
compiler.cStringIO
compiler.os
compiler.compiler
compiler.syntax
compiler.future
compiler.dis
compiler.pycodegen
compiler.misc
compiler.pyassem
compiler.types
compiler.symbols
compiler.marshal
compiler.warningsやのようなエントリがあるのはなぜcompiler.marshalですか? それらはcompilerパッケージの一部ではなく、実際にはモジュールの属性でもありません:
>>> for k in sys.modules:
... if k.startswith('compiler.') and hasattr(compiler, k.split('.')[1]):
... print k
...
compiler.ast
compiler.consts
compiler.warnings
compiler.transformer
compiler.visitor
compiler.syntax
compiler.future
compiler.pycodegen
compiler.misc
compiler.pyassem
compiler.symbols
そして、パッケージの内容は次のとおりです。

辞書に「余分な項目」があるのはなぜですか? また、そのsys.modules目的は何ですか? のようなモジュールはパッケージmarshalの一部ではありませんが、接頭辞が付いており、理由がわかりません。さらに、コンパイラパッケージをインポートした後にモジュールのエントリがあります。compiler'compiler.'marshalsys.modules
sys.modules['marshal']
<module 'marshal' (built-in)>
注: マーシャルをランダムに選択しました。これは、任意のモジュールの一般的な代替品として機能します。