Nice article !!
There are only two hard things in Computer Science: cache invalidation and naming things.
-- Phil Karlton
I've seen many caches breaking good models, adding unnecessary coupling and being premature optimizations and poorly invalidated.
Those were the bad ones
The good ones are functional caches, where business rules clearly state when is valid to cache a value and how to invalidate them