I feel like this is the natural cycle of abstraction. Things get more and more abstracted and virtualized as they become easier to build and manage, but then the cost of all those abstractions begins to add up, and a movement of ultra-simple, specific performant solutions springs up, outcompetes all the bloated abstractions but suffers inflexibility, then begins to get abstracted and the cycle repeats.
I don't think this is a bad thing at all. Every time we learn things, every iteration software improves. The pendulum swings back and forth -- mainframe to PC to server-side to browser based apps to whatever's next, and every one of those offers benefits to what came before.