Because players want to have some assurances as well?
If you sign somewhere longterm, you do so as a commitment to the team. A NTC or NMC means the team will have to keep up its side of the bargain as well.
I'm not even sure where you are trying to go with that. No trade clauses are between a player and his team, there is not price that pays "what it takes" nor does any team "lose" someone due to such a clause. All teams know whether a player has such a clause or not, if they ask for a player who has such a clause they know there is little chance of getting him.
If a team gave a player a no-trade clause, they choose to do so out of their own volition. No one forced them to hand out such a clause. Once they have done so, they have to adhere to it.
And no, the league can't just not allow them. They are part of the agreement between the NHL and NHLPA. The only way to get rid of them is by the NHL asking for the removal of these clauses the next time the CBA has to be negotiated, and there is no way the players would ever accept such a demand.