Make it so that after the player has been with the team for say 5 years, you can take x amount of cap% off from his hit. And goes up proportionally. Or something like that.
I mean the salary cap achieves exactly what it was designed for. Parity, because good teams are forced to throw players overboard eventually. And it keeps the salaries down, at least for the majority of the players.
From a fan perspective, what you would expect the salary cap to do is to prevent a team like the Leafs or the Rangers to just grab every great player and sign them to some absurd contract no other teams could afford. It does that too, but also the things I described above. It sucks especially now that we are the victims of it, but it was the same for Chicago and Tampa as well. It should not be, that you can't afford to even KEEP your players.