FWIW, according to Wikipedia.....
"The official laws of the game stipulate that once the goalkeeper has picked up the ball, he must redistribute it within six seconds; however, referees often use their discretion as long as the keeper is not obviously attempting to waste time."
Bottom line is that the enforcement of the 6-second rule is a judgement call. The fact is, the 6-second rule exists and the ref has every right to call it if he or she feels it's appropriate to do so. I don't believe a warning is necessary, either. Goalkeepers should be familar with the rule. The fact that it is rarely called doesn't mean it wasn't appropriate to do so in this case. Why have rules if they are not going to be enforced? And the "in the spirit of the games" argument really has no validity. Would I like it if it was called against the USA team? Of course not, but that doesn't mean it might not be appropriate to do so.
By the way, the Canadian goalee kicked the ball to a place where there was no player, before the rule violation was called. That would be appear to be a deliberate attempt to take time off the clock as the Canadians were ahead late in the game, although the ball probably wasn't supposed to go out of bounds. So it might be the case that there was an intent to waste time and that holding the ball longer than allowed was part of the plan. Wasting time to run out the clock is common practice among soccer players when ahead late in the game. The Canadians may not like that they were on the receiving end of the call, and I certainly don't blame them, but the ref was not at fault. The game was becoming pretty chippy by this point (if not sooner) so maybe it was a way of restoring some control. Whatever, it is what it is and I'm very happy with the win, fair and square. Those who seek to diminish this victory have their own agenda and are obviously unhappy that the USA pulled out the win.