The are two other things that programmers tend to do:
(1) we hate redundancy
(2) if something is obvious to a programmer, he thinks it is obvious to everyone else that that is the way it should be done (despite a simple survey of his peers revealing probably 4-6 different ways of achieving exactly the same result).
Programmers believe that their way is better than everyone else's and that it is intuitive as well (well, it was 'intuitive' to one guy on the team (ie me), and I'm 'smart' so that must be the best and most intuitive way of doing it, right?)
Unfortunately, good UI design has enormous amounts of redundancy built into it, and that if there is only one way of doing something, it is actually anti-intuitive. A design where the user can try 3 things out and the third one works will be hailed as a paragon of intuitiveness. One where it takes 10-20 tries to get the magic combination will be viewed as having a horrible UI.
There is also a relationship between how easy it is to do simple things and how the user perceives the UI. Programs which make it hard (ie go read a couple of hundred man pages in order to figure out the flags you need) even to do simple things are viewed as bad, even if it turns out that the same amount of difficulty can also achieve amazingly difficult things.
Basically what it boils down to is that in order to fix the design of an open source project, you would essentially have to fork it. And having forked it and fixed it, the high priests of the programmer cult will despise your efforts because there is too much redundancy.