It's been said that there are only two hard things in Computer Science: cache invalidation and naming things. It seems that this statement from Phil Karlton continues to be true. Naming things is as close as code can be to poetry, so I'll leave that for the philosophers to discuss.
Invalidating items from cache is much more clear-cut problem to define. The more efficient and easy the solution, the better. Symfony3 already has some improvements for that, with more coming in the near future.