Frameworks are useful. I agree with several points here. People do tend to use frameworks because of hype instead of use. But it is the same case with programming languages and libraries as well. Higher level programming languages are nothing but frameworks which abstract away how things which we don't need to bother much about - how variables are pushed onto a stack, garbage collection e.t.c.
If you want to write a web app. What would you do? You would first prefer something better than C++. Why? Because previously C/C++ was mostly used for CGI and it would create heavy weight processes and you would need something light weight to handle good traffic. If you choose python for automatic garbage collection and all the higher level programming constructs or ease of programming. You should still prefer to work with a programming framework like flask or django. Why you ask? Because you don't want to waste time creating functions to print http headers implementing cookies, sessions e.t.c. Also if you want your web application to be secure you not only want to be sure that the framework that you have chosen provides those guarantees but also need to know the framework thoroughly to create a secure web application. Libraries are generally modular(or atleast should be) so that you could plugin functionalities that you need. However, frameworks try to take the approach of being bloated and add all functionalities packed into one so that they add certain features automatically instead of the user trying to configure them(convention over configuration). Most of the time choosing to implement something on your own vs trusting other frameworks to do that job well is because of the trade-off of time vs complexity. Frameworks don't generally become popular because of hype. They are popular because they solve problems which people repeatedly encounter when trying to build a particular kind of application. Frameworks(especially those which are open source and popular) learn from mistakes of several people and embody lot of experience. There are scenarios where people get stuck because the framework was not intended to handle a particular use case and sometimes it creates problems for people trying to use it for that extra use case. However, as more people encounter the same use case - either a new framework crops up or the old framework gets a new feature in a new version. Newer version of frameworks fix bugs and not always add new features. Up-gradation of libraries for the sake of it doesn't make sense. However, if you are getting benefit out of it - interms of security or usability - I see no reason as to why it shouldn't be done whenever a new version is released, especially when the software/application is in use or production.