The common denominator is the players. As a GM or coach, you can't trust them. They start having a family, now they're pulled in different directions. Give a guy $1 too much in guaranteed money, and he might just figure, I made it. What can they do, fire me? A guy cries his way out of a city he doesn't feel like playing in, and you have to sell him for less than what you paid to get him. Or, if a guy doesn't want to go to a certain team, then you no longer have access to that potential talent, and can't possibly perform your job to the best of your ability. And of course, there's a limited pool of UFAs every summer, and so if you want any talent for free, you have to overpay for aging crap.
Then it's also the league's fault for wanting a salary cap and tying the cap hit to the average of the contract, meaning you'll get the most amount of term possible in any given situation. Then because there's a limited pool of players available, they hold the cards. Collectively, the owners win negotiations. Individually, the players can get NMCs/NTCs.
And stop, fans aren't going to do better. In fantasy land, sure, you can go get this guy, trade that guy, completely rebuild whenever, play all the kids all the time, etc.
Vegas seemingly being the exception. They don't care about players.
Then there's TB. They knew they weren't winning last year, but they didn't trade Stamkos at the deadline, even though they knew they were letting him walk. Then, with an aging team, which has lost in the 1st rd the last 2 years, they didn't choose to start rebuilding, but gave a 30 year old a 7 year deal. Imagine what they could get for Kucherov. Or Point. They're re-signing Hedman at 34. Even gave him a bump in salary. He's not getting better.