This is the exactly the right kind of question to be asking, but I think your conclusion is wrong. Why think the painters and the welder in an auto factory have more in common than 20 different kinds of programmers do?
I think this is the right line of thinking. My understanding of the grandparent's argument is 2 pieces:
1. Heterogeneity/homogeneity of labour.
2. Tight/lose labour market.
I think Argument 1 is the weaker argument. There's a lot of fungibility between software roles. However, there's a higher learning cost. Moving to a new software company requires a few months before someone is close to full productivity. This in contrast between a painter moving from a Ford supplier to a GM supplier will likely close to full productivity within a few weeks. The cost (to the employer) is lower to rehire someone.
Argument 2 is the stronger argument, but may not be forever. In a tight labour market, I see very little need for unions. If the marginal worker can (and will) leave their position for a better position (pay, benefits, culture, etc), I see little need for unions. However, if the labour market for software engineers shifts in favor of businesses, this will change rapidly.
As far as I know workers in auto factory work on assembly line with very standardized amount of work and with work itself being highly repetitive.
Also, their output is relatively easy to measure and stand arise.
This is not true for programmers, making standard pay increase for programmers less useful as a target. What would be measured? Hours in office? Commits? Lines of code?