I really like CircleCI 2.0, but wish they had the option for the old caching behaviour. I work on Clojure and ClojureScript projects where it is entirely safe to cache ~/.m2 forever and keep accumulating into the same cache. In CircleCI 2.0 you need to add a bunch of boilerplate to get something that approaches this, but doesn’t quite reach it. I can understand how it’s a boon for some languages, but it has kept us on Circle 1 for now.
I do think you’re probably correct that the simpler your project, the more the 2.0 caching mechanisms get in your way. I personally prefer explicitly defining my caching strategy instead of ‘overriding’ an opinion (the 1.0 version). But they did have some solid opinions for most languages in 1.0 that probably worked great for 80% of the projects out there.