in reply to lazy loading of modules

The main purpose would be to avoid loading/compiling a module until when one of its subroutines was actually called.

Not quite in the way you've outlined, but the (core) module autouse does that:

NAME
autouse - postpone load of modules until a function is used