Frameworks Come with Boundaries
The problems begin as you start hitting the boundaries and go beyond what theframework was meant for. As the framework you are using gains new features you’ll likely want to keep your application up to date. This incurs some cost and may lead to bigger refactoring at worst.
Libraries Are More Flexible
In a library based approach (say React + some router + some data solution) you can be more flexible. As technologies come and go you can upgrade portions of your application as you want. There’s no need for big upheavals. Instead you set the pace. Say if a better router comes up you can replace that specific portion without having to disrupt the rest of the application.
Both Approaches Are Valid
Both approaches have their merits. I don’t expect frameworks to go anywhere. I do believe a library based approach is a little underappreciated at the moment. It does require more legwork and it comes with more technical challenge when you are starting. But the flexibility it yields may just be worth it. But as I said, it depends on the context.