The Sheet: Lamoriello's bag of tricks - sportsnet.ca
So let me get this straight: Front loading a contract that includes dead years at the end where the player has zero intention of playing (Ilya Kovalchuk) for cap relief was a violation of the "spirit" of the salary cap,
It's a violation of the CBA because an action that has no reasonable explanation other than intent to circumvent the CBA is a circumvention of the CBA. Also, assuming there is no implicit limit on contract length leads to the collapse of the CBA (everyone could have million-year tails and all contracts would have the same cap hit: the league minimum salary for that year).
Causing collapse of the CBA is a violation of the CBA. :)
...yet trading for a player with zero intention of him ever playing (Trent Hunter) with the sole purpose of buying him out for cap relief isn't?
I don't see how those two situations are analogous. The Kovalchuk contract would have given an unfair advantage to the Devils (able to sign more/better players) and would have taken money out of the pockets of every other player in the league (the discrepancy between Kovalchuk's salary and cap hit would come directly out of the NHLPA "players' share", meaning the players would pay for a portion of Kovalchuk's salary out of escrow; but in the tail years, the discrepancy would be reversed and the players would get, in effect, "paid back." However: since Kovalchuk would have retired before he ever got to the tail years, the "players' share" would never benefit from having less salary taken out compared to Kovalchuk's cap hit, as it would have in the tail years had Kovalchuk played out the full contract; therefore, the players would have paid for Kovalchuk's extra salary and gotten screwed at both ends of the deal -- they still will, actually, but much much less so).
But the Trent Hunter buy-out? There's no unfair advantage gained by any one team or any one player at the expense of anyone else. Teams are welcome to buy-out players, per the CBA. Players know they can be bought out. Teams are welcome to trade players who will then be bought out by other teams, since this is one way a team manages its cap. In fact, teams must have this ability if they are to comply with the cap rules. The only way a team can acquire cap space is by trading or loaning a player, putting him on waivers in hopes that he's claimed, or by buying the player out. But you can only do buy-outs in two narrow windows on the calendar. So, obviously, teams will trade players to other teams who will take on the player knowing that they will buy-out the player when the window opens. Teams need this flexibility. There's nothing unfair about it.
Unless of course the player you get in trade can't be bought out because he's got an undisclosed long-term injury.