The fact is, the primary reason someone is a bad technical worker in this era is that they're a poor coworker. Almost no projects of any significant merit are developed by a lone hero in a corner.
Morality is a psychologically distinct category. Being morally wrong is not the same, is not treated the same, as being factually wrong. A core part of the problem here is that something we'd want to be discussed factually, like choice of programming language, instead became a moral issue.
If a programmer advocates for ASP in a PHP company, it's reasonable he'd be fired, although I'd hope he'd be given a warning and a second chance first. However, thousands of people across the company would not get involved, the CEO of a megacorp would not cancel his family vacation to make a personal statement, the news media would not give it prominent coverage. Nobody much would care about a not-very-senior employee turning out to have a foolish or wrong factual opinion and being fired for it. But everyone cares about an employee making a moral stand that some (including other employees) may agree with, and being fired for that.
To repeat my earlier point: advocacy of ASP, here standing for any technical or factual matter, might be very wrong factually; but advocating for ASP would not hurt people's emotions and feelings of safety.
I mean, we could argue that this isn't a moral matter, but the fact is that a huge number of employees at the company do see it as a moral matter, and it affects everything from morale to recruiting to trust to retention. A warning is a luxury we have when this isn't true, but it's not one that's affordable here. To be clear, I am absolutely on board with giving him a generous severance (and a sinecure or PIP if needed to maintain immigration status or something), because I care very much about the wellbeing of all humans regardless of whether I find them to act morally. I'm not here to punish him for his immoral behavior. But the important thing is that he needs to be removed from day-to-day activities and decisionmaking at least as much as someone who seriously and earnestly advocated ASP would.
(In fact, one of the few scientifically-cited claims in the document is "moralizing things that shouldn't be moralized is bad," but there's no strong argument, scientific or otherwise, for "... and this is one of those things that shouldn't be moralized.")
1. What is and isn't in the domain of morality is a matter of culture and history and current events; if enough people feel something is immoral, that makes it immoral pretty much by definition.
2. Immoral behavior is, and in some sense ought to be, punished more harshly and more swiftly than merely being factually wrong or incompetent.
But of course people never agree on what is moral or immoral, or even what should be moralized or amoral. In particular, I believe in and argue for the free discussion of factual claims in the pursuit of truth, and against the moralization of empirically-testable propositions. (So, I agree that moralizing such things is bad).
I can give lots of reasons for why this produces a better society (as well as better science and technology), but in the end it's only a better society for those who care at all about truth (and, inseparably, about working science and technology). If someone disagrees with this on moral grounds, and feels it's better to force everyone to lie if the truth might be offensive, then I probably won't convince them otherwise.
With PHP vs ASP, we trust people to behave civilly and allow space for debate. With men vs. women, we don't. One man's modus ponens is another's modus tollens; draw your own conclusions...