My concern over documentation is not so much about "internal" documentation as "external". There must be better terms for this, but I can't think of them offhand, so:
"Internal" documentation are the /*comments*/ you put in the code to make it easier for others (including yourself, months later) to figure out what the code is doing. This code (obviously) sits in the stored procedure itself, and so is only accessible to those who have access to the procedure, and only if they open and look at the file.
"External" documentation, as I'm thinking of it, is more a description of what the procedure does and how to use it (inputs and outputs), and not how it actually works. This should be a single object (document? database? file?), readily accessible and understandable by everyone who needs this information, and this could range from the old hands who know the system inside-out to the summer interns or new hires. This is the document that tells you "hey, someone already wrote something that does what you need".
I have no real idea how to create, maintain, and distribute such a document (and again, it wouldn't necessarily be a piece of paper or even a simple text file). But if we had had something like that around hear a few years back, we'd maybe have several hundred procedures today, and not a 2000+ load of redundancy and chaff.