How is having a passion for a particular piece of software different than having a passion for a specific job or company? Plenty of people have enough passion for an internship that they are willing to take it for free. However society has been discouraging that over recent years because that route is only available to people who have outside financial support and it can easily be abused by employers. Open source software has the same potential drawbacks.
Not every piece of open source software is diminishing the value of enterprise software developers just like not every unpaid internship is reducing the value of entry level labor, however both systems can easily (and even unintentionally) be abused by businesses.
The interns' goal is to learn the trade. The companies goal is to attract talent and/or get a ROI.
In my company an intern conducted research on scalability - creating tools to measure and monitor the software in the mean time. So not only does the company have some neat monitoring tools now, the intern actually found a bottleneck and improved the product. The company is now offering her a contract...
Caring about eachother doesn't have much to do with it.
Speaking for my own open source projects; There are already better, cheaper, and easier alternatives to my software. I'm already paying out the ass for something I could just download. I'm doing it for reasons that I can't, or won't, buy. And I know that sounds cliche because it is cliche, but passion is cliche.
We're programmers and hackers here. Just like a hot rod enthusiast spends $200k and 3 years building a car he could buy in a catalogue for $75k; we don't pay as much attention to cost/benefit relationships as we'd like to think.