Just look, for instance, at FPGAs: almost all the tooling is proprietary, very expensive, and very buggy too. Or look at PCB design: Altium seems to be the standard here still, despite Kicad having made huge advances and by most accounts being as good or even better. It took decades (Kicad started in 1992) for the FOSS alternatives here to really catch on much, and only really because PCBs became cheap enough for hobbyists to design and construct their own (mainly because of Chinese PCB companies), and because CERN contributed some resources.
I'm not sure what the deal is with engineers hating collaboratively-developed and freely-available software, but it's a real thing in my experience. It's like someone told them that FOSS is "socialism" and they just reflexively dismiss or hate it.
Most of the incredibly well used robust open source packages are sponsored by large tech companies. The embedded space just hasn't had that kind of sponsorship.
FreeCAD's UI is "a bit crap". The "workbench" metaphor is fine as a metaphor, but the specific way the workbenches are put together in FreeCAD is oriented more towards the way the functionality is implemented than what the user wants to do with it. You have no choice but to understand technical implementation details.
That's just one example, but that attitude to UI in FreeCAD is absolutely pervasive.
I think that's a general problem in the space. The user interfaces in general aren't designed, they're an outgrowth of the direct implementation of the underlying functionality.
> a) have a working mental model of software functioning, so they reason about interfaces differently
You're 100% correct, they do reason about interfaces differently, and thus have wants and needs which are different from those of non-technical users. Those wants and needs are not met by mainstream software, but are met in some OSS software, so it should come as no surprise that such types want to defend that software against the incursion of those who want to make it just like the mainstream offerings!
Like you I have a slightly different perspective here, having been a hobbyist software developer for some years, but having worked in print and design as a day job.
But I still bemoan such things as the awful keyboard handling of the current GTK file dialog, when compared with the old GTK1.2 file dialog. The old one was truly hideous to look at, but handled filtering files by keystroke far better than any current file dialog.
Yeah and I think most UX designers would consider that a bad design though-- developers are users and if it's tough for developers to use, then it needs to be optimized. As someone who's created a few APIs, I know that developing friendly interfaces for developers-- APIs are interfaces that humans need to understand and use-- involves the same blind spots as developing for end users. At first, Microsoft concentrated on developer experience a lot, but I think Apple is probably doing a better job of it now. Their programming environments are products they sell to developers, so they concentrate on making their interfaces smooth(ish) for developers.
Additionally, in the discipline of interface design, the visual polish should be a secondary or tertiary concern. Things like gestalt, implied lines, negative space, and type hierarchy are obviously core tools to orient users, especially in very complex interfaces, but the higher-level look-and-feel stuff is often not even handled by the same people in larger design organizations. Even things those higher-level designers might be concerned with-- interaction designers using the subtlest animations to indicate action or intent, for example-- still meaningfully affect software usability, though.
It's unfortunate that FOSS projects generally just aren't set up to accept design contributions, but it's not anyone's fault, per se. It just isn't the way the standard FOSS organizational structure evolved-- it was basically like a commercial software dev organization but the lead developer was also the product manager. Without a product manager to balance the design and development needs, design will obviously fall to the wayside. Unfortunately, that's left a pretty hostile environment for designers in FOSS. A lot of FOSS developers get defensively arrogant or combative when I even bring it up, but at this point, I'd rather set my beard on fire standing next to a gas pump than go deep into a usability analysis for a great FOSS tool, all of which I'm willing to implement myself, only to have a defensive dunning-kreuger echo chamber of design "expertise" tear my work to shreds without even considering that they might be conflating what they're used to with what's actually good, and they'd almost certainly benefit from change. I get why that happens-- it's just standard social cohesiveness, ego etc. and is not unique to software dev, and it's not their fault that dev culture developed that way.
But even though it's not FOSS maintainers fault, if they want non-technical users to use their software, it's certainly not anybody else's responsibility to enfranchise UI designers into their projects if they care about non-technical user adoption.