Idk, the predators had every opportunity to use their compliance buyout on Weber to avoid this penalty so they would deserve it. But at the same time I can't see the NHL hitting the preds with a 25m penalty which will be probably close to 25% of the cap around that year.
Maybe the max penalty should be the cap hit itself? So 7.8m
The issue is that rather than rewarding players for playing almost the entire contract, the rules actively punish it.
Kovalchuk only played 3/15 years before retiring, so his benefit was spread over 12 years.
Luongo played 9/12 years, so the benefit is spread over only 3 years, with a much higher cap hit.
The benefit should be spread over the number of years the player played the contract, rather than over the number of years left (in most cases, this just creates an equivalent penalty to the benefit that was there).
Worst part of this whole thing is that a legend retired today, and the attention is focused on the salary cap impact he has rather than on his career. That should tell everyone this rule is poor.