thanks for your reply. I don't know if caching is disabled in Edit mode, probably it is... for sure I was making something wrong, not considering what module caching actally does - cache all module output, not only data.
I was wrong assuming module caching is only about using Datacache within my module, that is I was thinking that only what I explicitly put to cache by calling Datacache.Setcache() was to be cached, not my entire module output.
What is interesting, to me at least, is that I can however use Datacache to cache my data and take advantage of a performance boost: I'm caching the results of an heavy db call, and reloading data from cache improved loading times a lot. But I cannot set my caching time in module settings (not as Dnn cachetime I mean, I could have a custom settings for this), if I have partial rendering enabled - now I got it.
What I miss now is wheter using Datacache this way hides some problem I cannot see: it sure is not a best practice, but am I the only one using caching this way? Somehow "partial caching" I'd say.
Wouldn't it make sense to have the possibility to set a "level" for Module output caching, like "Normal" to cache the entire module (like Dnn does now) or "Only data" to only cache data I put in cache calling SetCache? This way I could take advantage of both partial rendering and caching.