The whole point of protocols is to get software independent descriptions, so that software can communicate over networks independently. At least that is how it works for TCP/IP, DNS, HTTP, HTML, SMTP, ECMAScript and so on. It seems Bitcoin as a network has quite a different relationship to protocols. After all the consensus build around the software, and protocols are essentially enforced consensus. At any rate, the view that bitcoind source should be the documentation is not very helpful for the future development of the network. And to say there should be no good documentation doesn't really hold up in argument. One could argue that Bitcoin should be the best documented piece of software on the planet.