Yep. NTCs and NMCs should be used on what GMs believe to be core players. A big reason why we're where we are is because at one point our core was 8-9 players (Sedins, Burrows, Higgins, Hansen, Garrison, Edler, Hamhuis, Bieksa, Luongo, Kesler) which is too many. I can't remember if we decided to honour Ballard and Booth's NTCs after trade right now either but I'll go with no just for arguments sake.
If you lose Higgins because he wants 4M then fine, you replace him through free agency or a trade. The answer isn't to give 2nd/3rd line tweeners NTCs to keep their salaries down.
You identify 4-5 players you want to build around and lock them up with NTCs/NMCs. The supporting cast, even if overpaid shouldn't be unless it's short term high performing players (Vrbata would be that).
Sedins - no brainer NTC's.
Burrows, Higgins, Hansen all have provided excellent value for almost their entire tenure. Well worth the NTC.
Garrison - was moved easily, NTC didn't hurt at all.
Edler - no brainer NTC, doesn't hurt us.
Hamhuis - we will see if it hurts us if we try to move him I guess.
Bieksa - easily moved.
Luongo, Kesler - no brainer NTC's. Every team in the league would have given it to them.
You can argue that maybe the NTC is preventing us from getting something for Higgins now, but who cares. His contract isn't hindering us much and he's given us 4 years of tremendous value. Still, that is one NTC out of like 12 that is maybe hurting us one year out of five. That is not evidence of support for the "never give NTC's to non-elite players" theory. Bad contracts hurt teams more than NTC's ever could and it's not close.
If the cost of giving half your team an NTC is that you get 4 years of awesome value followed by 1 year where maybe one of the NTC's is hurting you then I do it every ****ing time.
Despite all the teeth gnashing it's just not a big deal.