ViewCache is cache for the content/view module, so has no effect on your custom module. TemplateCache is the global setting for en/disabling cache-blocks, you can control your cache blocks from within your templates.
I've tested a bit more now and enabling ViewCaching works fine. I use {cache-block} around the top menu and a site map at the bottom in pagelayout.tpl, while the {$module_result.content} do not use the cache-block mechanism.
However I have to set TemplateCache=disabled in order to get the result I want. My module script looks like this:
<?php
// 1. do stuff
// 2. setting some template variables
$tpl->setVariable('result', $result);
$tpl->setVariable('access_type', $GLOBALS['eZCurrentAccess']);
// 3. prepare result
$Result = array();
$Result['content'] = $tpl->fetch('design:mymodule/search_result.tpl');
?>
as described in this tutorial: http://ez.no/ezpublish/documentation/development/extensions/module/module_tutorial_part_1.
$result contains the correct new values, but those values is not set in $tpl->fetch() - the template remains in the previous state (when TemplateCache=enabled). Any ideas?
A related question to this topic is how can you include dynamic data from a custom fetch function inside a node template if you want to use ViewCaching in general, but some parts on some pages should not use it?
Use case: A content node includes some general meta data, but in addition you want to display some related content from an external data source that changes every minute.
Currently I use a node template with a custom fetch function - when ViewCaching=enabled the dynamic content remains in the view cache, while ViewCaching=disabled it's fetched again.