"Transparent caching" is, in mysql.
It is so good and transparent works, what about him don't even know.
The problem arises when you need the cache to invalidinput. For example, updating some records. So you invented transparent caching will be forced to repeat the behavior of the mysql cache to remove all queries containing the table to update. So why write what is already written?
Hence the conclusion: if you want something to accelerate faster cache mysql caching should be transparent. For each operator should at least specify the estimated lifetime of the result in the cache.