В каждой профессии есть набор прописных истин с разными последствиями при не исполнении. И если искра в забое может стать для шахтера последней, то в программировании все не так очевидно.
Не используй гото и глобальные переменные, комментируй код, не доверяй вводу, PEP 20, java code conventions и прочее - все эти истины раз за разом повторяются новичкам, до полного усвоения. Если нарушать правила, код будет пахнуть, а с техническими долгами никогда не рассчитаетесь и стоимость изменений вырастет до бесконености.
Применимость
Какой главный ресурс у программиста? - время, которое суть деньги. Необоснованное нарушение правил приводит к потерям времени на поиск, понимание, исправление.
Большие команды с поставленным процессом сразу научат правилам. Но вряд ли дадут их нарушить, банально зарубив на кодревью. Здесь некогда учиться, нужно фигачить код.
А ведь поиск границ применимости неизбежный этап развития. Только попробовав нарушить и ощутив обратную связь, можно понять истинную причину правила, когда нарушить правило выгоднее его соблюдения. Понимая суть запрета возможно нарушать правило без последствий.
В маленьких и неопытных командах все с точностью до наоборот: возможность попробовать любые варианты и собрать все возможные грабли. Никто не отправит на переделку. Главный минус - отсутствие гуру, который будет направлять, не ограничивая.