На мой взгляд описание слишком примитивное и подходит к небольшому числу проектов.
Про "с нуля не могут" это, конечно, глупость. В крупных компаниях постоянно делают проекты с нуля и у них есть ресурсы делать всё по феншую. Это описан только некий карикатуризированный стартап. Безусловно такое случается.
Вон касперские пишут свою операционку и скорей всего никто там никуда не торопится, нет цели за месяц её в продакшн выплюнуть. Думаю, там всё более-менее приемлемо.
По моему опыту говнокод возникает тогда, когда не хотят тратить время на удаление старого кода. Делают код по одним требованиям. Потом выясняется, что нужно другое или нужна фича, которая плохо ложится на текущую архитектуру. Здесь можно либо остановиться, заново продумать архитектуру, переписать что надо, и реализовать как положено, без говнокода. Либо можно попытаться натянуть на текущую архитектуру новые фичи как попало. Во втором случае получается говнокод. Частично это может нивелировать грамотный архитектор, который заранее предсказал эти изменения и внёс их в архитектуру, но если он не угадает, то опять же будет говноархитектура, что может быть даже хуже говнокода. Всё это может предотвратить грамотная аналитика, которая в принципе не допустит изменения требований, ну это в идеале.
Понятно, что не всегда говнокод это плохо. Разумные временные рамки никто не отменял. Иногда надо поступаться принципами. Это жизнь.
Ну и, конечно, главный источник говнокода это просто низкоквалифицированные программисты. Этим уже ничего не поможет кроме наработки опыта.