Dave Long's response to my original 2004 post:
Literate programming is composing a program source by pasting together a dag of (smaller) chunks. Versioning, however, is composing a program source by pasting together a list of (sequential) edits.
The former is primarily spatial, and the latter primarily temporal, so it may not be too difficult to keep the two from interfering.
Heck; use the versioning capability to expand chunks in the appropriate environment of a configuration tree, and one would have self-documenting CM.