A better match to Python would be PostScript where a dictionary
stack is searched at runtime. In the NeWS implementation, we
added name spaces in the form of 'packages,' themselves being added
to the dictionary stack when "imported." We made packages be
read-only, though they could contain objects (like dictionaries)
which would be read-write. That way, it was possible for the
server to "collapse" all the read-only packages and system dictionary
into one hashed table internally, speeding up lookups at the expense
of making package-adding/deleting slower.
I think that making Modules a first class environment (like packages
in NeWS) is an elegant solution to the name scoping problem. I also
think it's worth thinking about making imported modules read-only,
which would help with implementation details, like faster lookup.