In my mind java is notorious for having frameworks that box you in. You have to think like the framework or you will have major problems. Think spring/hibernate.
The library over framework idea is that external tools that you use should solve a problem and be composable. You should be able to mix and match easily if you want to throw something away or introduce something new.
Composable libraries can reduce NIH and keep you flexible.
If you're using only one or two functions from a big library, it might not be worth the overhead. A lot of Boost libraries are super complicated and really turn me off when I want something simple like a directory scan or a synchronous socket. Sadly there is often no alternative because the C++ community has thrown so much weight behind Boost.
I wish C++ had a module/package system and a simple version of Boost that only covers the most common 90% of functionality. But that leads to another problem with libraries: when you suddenly hit the limits and need to completely ditch them for something more powerful.
I like libraries but it's not always an easy choice to use one.