Ты даже процитировал: это относится к коду, который поддерживать не предполагается.
Вот если так делать код, про который знаешь, что потом придется переписывать - ничего не выйдет.
Разница подходов зависит от размера проекта. В крупном проекте менеджеры сверху спускают задачу менеджерам снизу, и там наверху никого не интересует, можно ли ее сделать. Разработчиков нет, интернет отключили, или офис залило - никого не спрашивают о реализуемости задачи, ее просто ставят. Менеджеры внизу выкручиваются как могут, чтобы попасть наверх - нанимают студентов, обманывают, приказывают делать плохо.
Тут имеет смысл ввести guidelines, как ты всегда говоришь, и следить за качеством везде, чтобы мудаки не могли приказать делать плохо там, где нельзя.
Менеджеры нарушают правила, конечно, но когда правила есть - нарушение можно озвучить на совещании, и у менеджера начинает болеть задница. Тут в твоих принципах есть большой смысл.
А когда проект небольшой - обсуждается каждая задача. Нет ресурсов - меняют планы, подстраиваются. В одном месте вкладываются, на другом - экономят. Маленькие проекты в итоге побеждают, становятся крупными, и обрастают эффективными менеджерами.