1
Draven has looked closely into this and found out why (at least some) modules don't work properly with the module-wide cache.
--=Important Bit=--
The header.php checks if there is a cached version of the requested page by seeing if the $xoopsOption['template_main'] is set, but since most modules include header.php as one of the first pages, the $xoopsOption['template_main'] will read system_dummy.html and not found as cached.
Therefore all the php code will be re-executed including SQL sentences and everything.
So to properly benefit from the module-wide cache, start every page of your module to first include mainfile.php, then determine which template to use (if it is necessary to evaluate and not just specify it) and set it with $xoopsOption['template_main'] = 'templatename';
BEFORE including root/header.php.
--=/Important Bit=--