It entirely depends on the type of application you are building. Boring CRUD app that is rarely updated? Yea, server rendering is probably enough.
But the requirements of "modern" software are always changing. Sure, the static table might be enough, but then some business person says, "It sure would be nice if I could check a little box in the table row or assign this user here..." and now you're adding little JS hacks. Again, not impossible, but at a certain scale, the ability to have infinite access to client driven reactivity becomes a real business empowerment.
Given the interest in the JS working group to add reactive Signals to the core language, I suspect this will only become _more_ prevalent in the future. Maybe it will need less input from frameworks to do the same work and we can move back towards using built-in browser APIs, but the programming model itself works really well (so much so that SwiftUI uses a very similar reactive UI programming model).
Again, I don't disagree with your point, just at a certain scale, it becomes a huge hassle to maintain. If people are going to use these tools and frameworks anyway, it helps the entire web to make them more efficient.