"Now, this might be an overkill for a small project. But more importantly, this could be a nightmare to maintain when there are changing features and documents are constantly updated."
Yes, this can be very hard to maintain. The way it happend on a couple of very large projects where I worked to this kind of quality level (ISO9000 etc) was to be extremely harsh on adding new requirements to the current work plan. This means that the requirements stay stable and it is not too hard to keep all the documents, code, acceptance test in line. It is still a full time job for several admin staff and a daily overhead for every engineer (but I am talking here about 1M+ LOC projects).
New requirements are only admited after rather lengthy consideration. The process is basically there to make the customer think very hard about adding a new requirement to the current release. Adding requirements to future versions is fine, but to add one to the current phase is costly. There is a fixed fee payable just to submit a requirement and get it read by an architect and presented to a change control board. Once this is done a quote is given to the customer (and if the new req is complex the quote may be just for further investigation and not even a commitment to implement the feature). It is then up to the customer to decide whether or not to proceed, and if they do then the team undertakes to do the work and adds the req to the matrix, fixes the docs, adds new test and so on. The schedule may also need to be adjusted at this point.
This approach might not sound commercialy feasible if your organisation needs to be open to new requirements. If this is the case then you can still have tracking and a managable level of overhead if you go for frequent iterations. That way your current version stays stable as you work on it and you can keep the matrix and docs up to date; if your customers have new requirements they can add them to the "wish list" for the next version, but you keep them out of the current version. When it comes to the next version you take on all the new ideas then, and spend time creating a new matrix only after the previous version has shipped.
What do the gurus say about this?
Here are some references, these are just personal favourites. I haven't read anything specificaly on CMM so can't point you there I'm afraid.
Anything by McConnell is worth reading ( I think you mentioned him, but worth repeating I feel), but I think Professional Software Development might be most relevant to you. It is a collection of essays, some of which are online at the above link, ch. 13 "Business Case for Better Software Practices" seems to be the kind of thing you are after.
Peopleware and Brooks' TMM-M are 2 of the classics, they don't really touch on the specific issues you mention and are too early for CMM, but if you haven't read them I would try to make time as they provide great background.
I also seem to recal NASA published a lot on software quality (to this day the Space Shuttle is regarded as an example of probably they highest quality).
One final thought, have you read any of the ACM or IEEE journals?