Проблемы с читаемостью есть там, где нет проектирования. Если проектирование есть, то проблем с читаемостью нет. Ну будет непонятная внутри функция, ну либо не будем трогать, либо перепишем, если дизайн простой, понятный и прозрачный. Я много раз видел, когда проект говно, но код весть такой "правильный" и когда местами код странный, зато все всегда понятно. Понятность системы в ее дизайне, а не в коде конкретных методов.