First I should apologize if my patch is a little bit confusing.
I tried the last commited version of the patch that should allow to load compiled python modules
and get them as working modules in the interp (based on invocation of moduleDictInit).
Given my patch, the point where  moduleInitDict is called is somehow wrong.
The point is that I have left createFromClass(String,InputStream) in the code
but this is no longer called and so createFromClass(String,Class) for classes
coming from sys.path.
This make indeed sense: java classes are treated more symmetrically indipendently from where they come
as we wanted but so moduleInitDict is not called when supposed. Clearly here we want to able
to break the symmetry when this make sense and we are loading a compiled module.
The problem is that given the patch there is no clear, coherent point where to put
moduleDictInit invocation.
My (not deeply tested) suggestion to get the desired functionality is not to use
moduleDictInit but simply to repeat the behaviour used when executing compiled
code outside of the interp:
the interp when looking for x should try not only x.py and x$py.class but
also x$_PyInner.class and then in this last case create an instance , getMain and execute
the obtained code in the dict of a new module.
Let me know...
I can experiment with this.
regards, Samuele