An argument by anecdote.
My prized Christmas present this year (which I obtained by selling a load of old electronics that I didn't want/need) was a pair of Parrot Zik headphones. They're wonderful. They paired with my Android phone flawlessly and they also connected with superb ease to my Linux installation which is my primary setup.
However, I have now spent several hours trying to get them to work under Windows 7. Will they pair? Of course they won't. Apparently you need to install a different Bluetooth stack. After much registry hacking and following circular trails of advice from Microsoft, I have up and plugged them in manually.
Switching back into my Linux installation I found that somebody had written a great-looking cross-platform indicator icon for the headphones, having reverse engineered the protocol. I cloned the git repo, installed the dependencies (todo: write list of python modules required) and, bang, it fired up and worked.
Now, it didn't work flawlessly. The icon in the indicator was showing up as "not found". Hmmm, I thought. Is this going to be another Windows fiasco? No, it is not. I delved into the code, because I can(!) so I can actually see what's wrong. About five minutes later I'd written a fix for the problem and committed it back as a pull request to the original author so that everyone can benefit.
Now, the problems are of a different magnitude: writing and debugging a full low-level bluetooth stack is likely beyond my ability and willpower. However, I will never know. All I have in that case are compiled binaries that I cannot fix. By contrast, in the open context, I've given something, admittedly small, but useful, back.