This is something I have been thinking about a lot lately.
When the NHL first started allowing movement based clauses, I was under the assumption that they would be rare and something reserved for just a handful of elite players to reward them for their loyalty.  I didn't realize that they would be this common.  Even average players know that if they aren't offered one, they can get the same money from another team that will give them one.  
For a league that puts so much emphasis on competitive balance,  it sure seems to throw that off and handcuffs some very specific teams (most of the same teams that were hurting before the salary cap came in).  When trying to pivot direction by making trades, it has become a massive problem for some. Trades are necessary or building a good team this issue gives a huge bargaining advantage to some teams.
Someone more familiar with the NBA can correct me if I am wrong, but I believe in the NBA, a player has had to have been with their current team for at least 4 seasons before they can get a NMC/NTC.  It's a way for a player that has made a life somewhere to get security and be rewarded for their loyalty.  In essence, it was something implemented so the player couldn't be moved from the place they want to be.  In the NHL, I think there is a subtle difference.  In some cases, the above is true, but in many cases (I would wager most), it's more of a tool to control where they go, which is something they should be doing in free agency.
Here is a write-up on the MLB system and how some of the same concerns have been raised, so it isn't just an NHL situation:
https://calltothepen.com/2016/08/25/...damaging-game/
I think the solution would be to just get rid of modified NMCs and NTCs.  None of this 10-team list crap and no waiving the clause.  If you get an NTC or NMC, you are not moving.  You can't ask for a trade, and the team can't trade you - you ain't moving during the whole contract term. In other words, exactly what they are supposed to be.  I think it would make teams and players think hard about whether that was something they really wanted to do, and I couldn't see teams having more than one or two at any given time.
I know the NHLPA would fight hard not to change it and that change is unlikely.  It's just another example of how owners are their worst own enemies.
Here is someone else's rant on it:
http://winnipeghockeytalk.com/featur...o-trade-clause