A lot of people do in the spirit of volunteering. After that, most developers do it so they can get improvements back from other developers, or because it was just a pet project they didn't feel the need to profit from. Plus a lot of large free software project contributions are from companies who can see a way of profiting off of the software (like IBM).
You’re right that a number of corps have now “me too-ed” on the idea.
But msot of it is largely the product of volunteer European programmers. I geuss when there are no jobs and you get paid about the same whether you work or not, why not make a name for yourself.
In other industries, they call that “dumping”.
Hey, people can do whatever they want. I’m actually Ok with that.
But I have to say to say most of it that I’ve seen suffers severely in terms of documentation. Nobody enjoys doing that - nor does it accrue much good will, so it never gets done very well.
1) It depresses the need for paid programmers.
2) It usually suffers in terms of documentation.