Hmm, in my experience caches are tricky beasts, so having a way to activate/deactivate them from the user side maybe a nice way to deal with possible buggy implementations (e.g. caches may run flawlessly in some scenarios but fail in others).

Also, sometimes the user may not want to use the caches in some cases.  For example, it may happen that a user may want to temporarily deactivate the cache for a table that is updated from time to time, so that the cache can be updated too, and the re-activate it again.

But if we want to control the cache behavior from the catalog, I am fine with that, as long as this capability can be controlled programatically by the user.