Michael, I totally agree with you. If companies choose to do opensource software and it fits our needs, we should use it over proprietary (most of the times) because it comes with the source code! 

But for example, I can make a deal with some company paying them for some program and it's source code. If they accept it, it's ok. If they don't, well we'll have to live with that, we can't make people share their business secrets like when you buy a car, you don't buy its plans and factory details. It's something they don't want you to have.

As for the end user, the majority of people don't care if something is or isn't opensource. Maybe they will like the free (as in $0.00) but they don't have the coding skills (or time) to change the code improving or customizing for their needs.

As for the .NET code released, If I were Microsoft I'd do the same. I'd let developers see the framework code in order for them to make better implementations on the platform, but I wouldn't let go of my code ownership. I wouldn't like to see some company releasing ".WEB 4"...