There's a somewhat decent argument to be made for non-profit organizations, but there's none for for-profit orgs like Microsoft.
you open source people, man. you give all developers a horrible reputation. put up or shut up, lol
I have no idea what you want to express with your second paragraph, though.
I have to say I'm disappointed seeing you defend exploitative labor practices.
* Patching the binary locally without its source code to do what I want it to do
* Submitting a patch upstream to an open source project
and arriving at the conclusion that the latter is preferable.
Doing free work for an employer is always parasitic with regards to its employees.
You have a third option here which you didn't list, which is forking the project into one which is working in favor of the public; removing the CLA and giving each contributor shared ownership of the project. Your contribution should then be made to that project.
You should never be working for a for-profit organization without compensation.