I've worked with coding geniuses in the past. The problem is, they don't want to document their code, and it takes other people an eternity to figure out how it works so that it can be maintained. I prefer a mediocrity who can write code that other people can understand over a genius any day.
I know what you are saying only to well. Over a number of years coding (sometimes at a C-level) using mostly Unix based Informix Database Development tools, I spent many a weekend writing detailed user manuals, and buring huge amounts of comments into my code for anyone to follow up on. Often quite sophisticated sub routines call back functions etc., required detailed explanations in the source code.
I would venture to say I probably spent as much time sometimes working around the clock on and off for weeks on end creating large documents, memorandum, notes, as well as full user manuals as I had in actually generating the code.
Of course, I lived at work. And did not get paid for it. Seldom do we find this new generation of programmers willing to do as I just described. Admitably, many simply don't know how to add good documentation. That is why companies are beholding to hire documentors. Sadly they cannot replace the programmer that writes well defined in code comment fields that truely lead follow up programmers in what their code represents. It all goes along with the territory.