Something you got so close to mentioning but didn't: programmers are vain creatures.
It is an unnatural thing for the programmer to accept ideas from others. It is not in its nature. That doesn't mean that it's not the right thing to do; it is, and it takes a certain quantity of strength and personal growth to do so. Those who overcome this inability to cooperate with others find themselves much more successful in industry... but the open-source world does not necessarily select for success in the same way industry does.