I've always found the fixation on source code rather odd. Many people know how to fix or modify anything else they own without the original design documents. Why should software be any different?
I think it's due to the impracticality of reverse-compiling and then modifying executable code.
> A program that you can run consists of a series of numbers whose meaning is obscure. No one, not even a good programmer, can easily change the numbers to make the program do something different.
I've had many experiences where the source code was available, yet finding what to change and figuring out how to rebuild the whole thing --- but without changing anything else --- was far more difficult than patching a few bytes in the binary.
To quote the title of this article, "open-source is just that".