avoid cross-namespace submodule pollution via module-code cache

When a module is loaded with submodules intact, it should not be
cached and used for a later load that is intended to obtain the
module without submodules. Avoid mismatches by constraining the
cache to modules without submodules.
racket/place: protect place-creation bindings

Closes PR 14677