I like the NHL's stance. If you miss the game because you're legitimately hurt, you're still expected to show up if you're physically able to. Obviously, having surgery during the All-Star break is an extenuating circumstance.
But if you're hurt and skip out entirely or decline to play even though you're healthy, you're suspended. And in a league with greater competitive balance than ever before, the possibility of costing your team in the standings is quite an incentive to show up. The purpose of the game is split between the players and the fans; the players have a chance to either rest (if not selected) or be around the best in the game (if selected), and the fans get a hell of a good show.