Инетерсно, а есть ли какие-нибудь практики или языки, которые ну просто не оставляют выбора кроме как разделять код правильно?
есть, конечно. вот, к примеру, на ассемблере наговнокодить довольно сложно - оно работать перестает быстрее, чем говнокод появляется. но на ЯП высокого уровня это слабо распространимо