Можно много дрочить на качество кода, можно решать задачи клиента. Можно на каждый чих завести отдельный класс с одним методом а можно сделать одной фунькой и тремя if, либо swith. Архитектура у Битрикса не самая лучшая, и это правда, но там большие проблемы из-за обратной совместимости. Проще все выкинуть и заново написать, а ребята стараются переделывают что есть. D7 развивается, но большой вопрос когда подтянутся разработчики которые научаться его нормально использовать. А не по старинке писать.