You have a point on this Don. But I can't imagine going to a baseball game and not having the Star Spangled Banner played. It wouldn't feel right. Just because that team consists of many players from other countries doesn't mean that the national anthem of the site where the game is being played shouldn't be played. For me the anthem is for the audience.
However for the case where a U.S. team playing in Canada I see no reason that the U.S. anthem needs to be played outside of one thing. Showing respect for your guest.
From what I've seen from the games in Canada, this post season, they do the spectacular right. From the moment the home team takes the ice it's something to watch. CBC does a wonderful job capturing this hysteria, pomp, and circumstance. ESPN misses the boat in opting for a commercial instead.
To think that the league would deny the crowd of this moment just because not all of the team's participants weren't citizens of that country would be a insult to the audience.