There's an interesting article
worth reading arguing that transparency around caching is problematic. This was recently posted by Manik Surtani who is the lead for JBoss clustering. The interesting thing is that not too long ago, JBoss was trumpeting "transparent middleware" based on AOP as the wave of the future. With caching, you are of course stuck with a number of semantic implications that the developer needs to be aware of. But the situation is much worse for something like transactions where the semantics should be unambiguous and touch deeply on the application logic itself. Transactions and the question of transparency was very much at issue at one point as well.
I guess a little experience went a long way since then. I hope.