Investment

One thing which really changed in gaming is the impossibility of the player to screw up.

On the dark ages of gaming past, it was possible, if not common, to be stuck in a losing situation with no way out.

A simple example: On Immortal, you descend a dungeon and end up facing a dragon. To survive the fight you need to collect several items to survive the fight, among those, a scroll of fire protection with limited charges. Have you not find the scroll, or used it's limited charges before the final fight for whatever reason, you have no way to win the fight.

On Diablo 2, for every Hell worth build one made, there were dozens of build which would simply not make the cut.

Those days, no matter what class you pick or path you choose, a game character will be end-game worth. You can be a tank mage, a DPS priest, a nuke warrior or whatever and if for whatever reason you found your build isn't cutting  it, respec are usually available. One modern exception I believe is the Souls series where, I guess, you can still make subpar choices but even there you won't find yourself closed in a room with the end boss without weapons and no way to load yourself out of it.

Not saying the old days were better though, just ranting about how stuff changed. Part of it is playtest which identify difficult spikes, but other part is also a drive to mitigate player frustation at any cost, even to a fault.