Your last sentance indicates that your first sentacne is incorrect. The man stuck it to himself publicly. He was handing out 100,000 checks at a news event and put the Salvation Army on public display. He must have expected them to be hypocrits that would overlook their beliefs about gambling for a large sum of money. BTW, for comparison, do you hold Clinton blameless for the Lewinsky scandal because some people have differing views as to what sex is? or what the definition of the word is is? If you do, then you would qualify as a hypocrit for sticking it to him publicly for not recognizing that some people have differing opinions of what sex is.
Calling the local Salvation Army "smug in its own righteousness " is just a slander against them. Name calling usually indicates to me that the name caller has no valid argument. Jesus himself, was accused of much of the same things by his detractors. With the law of God, there is no consideration of peoples opinions or negotiation. It is what it is. It does not change, and it doesn't matter what you think of it. The Salvation Army finds gambling to be a sin and will not knowingly participate in it. That is not hypocrisy, that is integrity. Do you have the strength of character to do the same? I doubt that I do, but I won't criticize those that do because of my own shortcomings.