If anything, the impression I got at my last job where I was in the union was that the union negotiations mostly created an excuse for not increasing individual pay. "Sure, you perform really great and all, but if we give you more we'll have to reduce pay for someone else based on the agreed upon average increase."
For high-in-demand jobs such as SWE, the leverage of "if you don't maintain competitive pay I'll probably start look around for other work" is much more effective than union negotiations when no one is paid bad enough that they'd be willing to go on strike to get better terms.
Education is good and free enough that the supply of qualified labor would be hard to keep down without governmental intervention.
You do give up some agency by going through intermediaries.
Good thing you are not forced to stay
You get a lot of devs with 20+ years of experience with very respectable wages (in European terms) who are not able to implement fizz buzz by themselves within any reasonable timeframe.
The younger devs, although considerably more skilled due to more recent education, aren't encouraged and mostly lack ambition, all they have to do (and can do) to make a good income is to hang around until they have 20+ years of experience.