Без заголовка
Это нужно отдельно обсуждать, как можно было бы все это написать, не теряя свойство масштабируемости, и тут меня вдохновляет vpri.org (они публикуют и публикуют кратенькие отчеты, показывающие, как можно упрощать софтовые решения в разы и разы, если применить голову).
Тут есть такой аспект, что упрощение софта разы, одновременно повышает сложность его тестирования. Т.е. как бы, инспекция человеком, конечно проходит проще. Ну и теоретически код содержит меньше багов.
Но есть проблема, что один баг может откликнутся в бОльшем кол-ве мест. И это все становится менее предсказуемым. Ибо баг может стать видимым только в одном случая, а в остальных остаться в латентной форме. Поэтому простое тестирование его не выявляет.
Это одна из причин почему слабо развивается такая, на первый взгляд, мощная и легковесная вещь как аспект-ориентированное программирование.