If invoking module-path requires loading any files, then modification dates of the files are recorded. If the file is modified, then a later enter! re-loads the module from source; see also Module Re-declarations. Similarly if a later enter! transitively requires a modified module, then the required module is re-loaded. Re-loading support works only for modules that are first loaded (either directly or indirectly through transitive requires) via enter!.
When enter! loads or re-loads a module from a file, it can print a message to (current-error-port). Use the #:verbose flag to print a message about such loads and re-loads, #:verbose-reload to print a message only for re-loaded modules, and #:quiet for no printouts. The default reporting corresponds to #:verbose-reload.
After switching namespaces to the designated module, enter! automatically requires racket/enter into the namespace, so that enter! can be used to switch namespaces again. In some cases, requiring racket/enter might not be desirable (e.g., in a tool that uses racket/enter); use the #:dont-re-require-enter flag to disable the require.