I have created a very simple module say /Admin, and got /admin/classes/controller/admin.php and /admin/classes/model/admin.php. with a namespace "Admin"
and when I uncomment "APPPATH.'modules'.DS," in config.php, and without putting the name space "Admin" into "module(array) " in "always_load" in config.php, the module Admin already working.
WHEN I commented out "always_load => modules" in both App/config.php + core/config.php, the module still working.
and url to http://localhost/admin/(index) reveal its working. the var_dump shows the module was loaded.
the routing engine will detect you're calling a module controller, and will auto-load the module for you.
In all other cases where you need to access something in a module from the outside, you need to load it yourself. If you use it occasionally, manually, or if you need it all the time, via always_load.