That is the problem with the ad hominem culture in America. Just because a person is racist/whatever doesn't necessarily mean that s/he is a bad person. We should actually be open to people who have these ideas. We don't have to hurt people to change them.
An environment where people are allowed to debate over even the most atrocious ideas is much more productive and inline with what the ideal democracy is.
I would have loved if Mozilla had an internal, open, philosophically rigorous, discussion that employees would participate in. Brendan would be forced to change his mind, not by force, but by reasoning.
Unfortunately, this is just my rosy way of thinking.
I understand you are passionate about this topic but please consider this line of thinking:
Here is what I am seeing:
"The discrimination against Brendan was based on something that he did." [therefore the discrimination is morally justifiable]
He did what he thought was right by his own standards.
I don't suppose you are for punishing people who do things based on what they believe is right.
Rather, you want to punish Brendan, in part, because of the nature of his belief.
If Brendan had NOT donated, would you have wanted him to resign?
Perhaps not, because, then you would argue, it is okay for him to have bad ideas, so long as he doesn't act on them.
It is because Brendan had donated to a cause which you disagree with, that you want him to be punished. Because a donation to a cause, in itself, is not "morally" reprehensible. You wouldn't punish people for donating for a cause.
Rather, your problem is with the cause he donated.
Your problem is not with Brendan, it is with the anti-movement against taking gender out of the equation in legal marriage.
Brendan has a different standard than you do.
It is clear that you believe Brendan has a bad standard.
But who is to say Brendan's standard is better or worst than yours?
It is with this line of thinking that you might reconsider whether it is, in fact, "morally justifiable" to discriminate against Brendan.
"He was fired because the particular political donation he made is evidence that he is a bigot, that he has a broken moral code."
Just because a person is a bigot doesn't necessarily mean that s/he is a bad person.
I've met racist people and even I am able to maintain some level of respect for them. This is what being open-minded is.
Hurting people just because they have a different philosophical belief than yours is the same kind of narrow-mindedness that leads to racism and religious fanaticism in the first place. Back in the past, if you said the world was round, people would classify you as crazy by virtue of you having an opinion that the majority did not believe. This kind of narrow-mindedness holds back open dialogue and progress.
As 'bad' as it is to be your definition of a bigot, to denote all bigots as having a broken moral code is as negative as bigotry itself.
I hate how people have this misconception that you have to hurt people to make them change.
Pretty cool gesture.
Though, I think you are slightly luckier than I am because I received 0.002315 BTC :P