Доксиген он больше предназначен для создания документации по коду. Обычно он генерирует документацию, содержащую описание классов и их методов. Но при этом может не быть общей информации о том, что мы реализовать то хотели, зачем создали именно такие классы, какие идеи положены в основу. Я бы назвал это кодоцентричным подходом.
У Кнута же скорее противоположный подход, он как бы начинает писать статью и делает вставки кода. А специальная утилита генерирует полный код программы из кусочков. Это я бы назвал документоцентричным подходом.
В любом случае для описания документации необходим один порядок следования мыслей, а для написания кода другой.
То есть хотелось бы найти какой-то промежуточный подход.