Refs don't do their job? LOL. The refs can't see everything. And how is 2 minute penalty gonna help, when McDavid hand is chopped into pieces? Fighting is in unwritten rules of hockey. You'll get 5 minute breather not tossed out like in IIHF.
Fighting helps to clean up and police the game. When refs are clueless, which is always the case in IIHF hockey.
*Sigh* why did I know that there would be such a non-answer in return...
Yes, refs fail to do their job. Either because they are not good enough, or because the league tells them to act that way. If you constantly call stick-play, as you should because that's what the rules say, then players will drastically reduce these plays. You know why? Because players aren't completely stupid. If something constantly hurts their team, they will sit, or their team will lose a lot. Just like players miraculously managed to put much much less pucks into the stands once it led to a penalty.
Fighting has never kept anything clean, dirty plays were rampant when everyone had goons, and the goons were often the very cause for dirty plays to begin with. Largely because most of them lacked the skill to do anything else. They weren't good enough on offense, and not good enough to stop players cleanly on defense either.
You have little to no idea about IIHF-hockey, the amount of dirty plays that happen there, or the amount of fighting in it. I literally told you about IIHF-rules in the post you quoted, but why accept facts when you can just make up your own alternate reality instead, right?
The whole idea that something prevents players from "policing" themselves if they wanted to is ridiculous to begin with. So hurting their own team by going shorthanded, facing suspensions and losing income is not going to prevent dirty plays, but somehow players are scared of jumping an opponent in return because they might face the instigator? Do you realize how utterly stupid that sounds? Players have zero trouble policing themselves right now, if that's what they want do.
There is one thing and one thing only that makes players think twice: the league threatening their career and income by throwing the book at them. No fighter is ever going to stop an opponent from doing a dirty play. There really are just three different options for dirty plays:
1) it's an irrational act based on emotion, a spur of the moment decision, absolutely nothing can deter that, because the player didn't plan to do it beforehand
2) it happens because a player is out there to cause trouble. In that case his sole purpose is to rile up the other team and make them go after him. Anyone who tries to fight such a player doesn't deter him but gives him exactly what he wants
3) a player (constantly) skirts the edges of the rules, because he knows the refs and league haven't been tough enough
You cannot prevent the first option. With the second one, you can punish his antics so the acts backfire (see Sean Avery beginning to hurt his own team more than the opponent). With the third one, the only thing that helps are lengthy suspensions. It's what finally made Matt Cooke change his game, after fighting did diddly squat to effect him at all.