That's just incorrect.
In the NFL, any player with more than 4 years of service is an unrestricted free agent once their contract expires. There is no compensation to the old team if an unrestricted free agent is signed.
2018 NFL Free Agency FAQ | NFL Football Operations
The MLB rules are way more complicated, but basically the team has 6 years of control and can then only get compensation if the player rejects a qualifying offer (1 year, $17 mil). A team can only give a player a qualifying offer one time, so that CBA essentially gives teams 7 years of control. Beyond that, there is no longer compensation for free agents in baseball.
In the NBA, guys are unrestricted free agents after 3 or 4 years of service, depending on when they were drafted.
If anything, hockey is the least player friendly and most team friendly sport in terms of compensation.