One of my company's current projects under development is
a minimal sql client implementing a small subset of the mysql protocol (for use in very resource limited embedded systems), on the mysql website there is some documentation which purports to describe "internals" in this case the mysql client-server protocol.
The documentation is incomplete at best (packet formats are not described correctly, the state machine description one would expect for such a protocol is barely sufficient, the method for authentication is described vaguely) and wrong at worst: packet formats, client server interactions etc.
Now, I had initially thought that was just a case of over worked/stressed developers just not having enough time to do the documentation job properly as well as having to write code, fix bugs, maintenance etc.
Now I am not so sure.
Use the source Luke? Nope, we are writing the code from scratch to avoid copyright assignment issues, which is why we hoped the documentation would be usable.
Lucky for us our code is modular, we can always switch to postgresql if required.