Пару лет назад я писал свою систему маршрутизации на основе комбинирования вашего подхода со слэшами ну и регулярными выражениями. Какое же это было… неудобное дело…
Проблемы разметки запросто решаются при помощи библиотеки html5shiv. Реалии же таковы, что JS отключен у незначительного процента людей. Врят-ли в какой-то фирме групповыми настройками запрещен вызов яваскрипта. Проблемы с разметкой и IE (7-ой версии если быть точнее) у меня были когда верстка генерилась средствами JS и тут уже пришлось дублировать теги посредствам дива с классом этого тега.
Подлагивание возможно при выполнении каких-то фоновых задачь на слабых машинах. Наблюдал такое только когда работал с кодом в момент сканирования документа, когда проц грузило еще несколько довольно объемных задач. В целом же субьективно он работает шустрее NetBeans-а. Хотя может в последних версиях они и сравнялись.
Ну у нас это было так: «Чуваки, надо бы кодинг стайл замутить общий… давайте возьмем кодинг стайл от ZEND + поправим то что не нравится». Точно так же вы можете взять допустим кодинг стайл того же Qt или еще какой. Их много. И тот что понравится всем, ну или просто компромиссный вариант, и будет вашим стандартом.
Про прототипное наследование можно почитать тут, хотя конкретно в вашем случае это явно никак вам не поможет.
Ваш код можно улучшить так:
1) постараться вынести все правила валидации в какой нить конфиг, мол для такого-то id соответствуют такие-то правила.
2) в самой функции брать значение, брать правила и прогонять.
3) реализовать функцию которая будет управлять ошибками (добавление в список, продумать как сделать так что бы ошибка удалялась после изменения значения поля на коректное). Просто функция вида appendError(message). Это избавит вас от макарон и дублирующегося кода разметки.
Если уж очень нравится концепция с классами — можете реализовать абстрактный класс валидатора (в прототипе только метода validate( value ) и поле message, от которого потом расширять обычные валидаторы типа email, minlength, maxlength и т.д, затем уже добавить на основе тех что есть или просто от абстрактного добавить кастомные валидаторы (мол для проверки уникальности логина, который бы связывался с сервером и т.д.)
Когда вы это все сделаете, можете для каждого айдишника добавить свой валидатор. Можно даже сделать так что бы валидаторы сами мониторили состояния своих полей.
Если же вам надо что бы кто-то за вас оформил должным образом этого макаронного монстра, то уж извините.
к слову, у вас в коде очень много повторяющейся ереси. Например… добавление ошибок можно вынести в одну функцию в которую будет передаваться только сообщение, и быть может указатель на эллемент для которого была совершена ошибка. Последнее нужно, например, что бы через какой $('html,body').scrollTop опустить пользователя к нужному полю. Ошибки же писать списком удобно для разработчика, но я например стараюсь этого избегать. Мне больше по душе какие tooltips или чего еще.
Silex это минимизированная версия Symfony2, по структуре он в разы проще, а его компоненты работают довольно шустро. Все кешируется, так что в производительности беды нету. Для простеньких сайтов он очень даже подходит.
Касательно C# и PHP — я пишу и на том и на том, PHP правда подольше, уровень выше, и как-то разницы я не заметил. Качество начало появляться после активного общения с другими программистами и работе в команде. Соблюдение каких-то кодинг стайлов и т.д, ревью кода периодическое. Хотя знание C# меня больше расстраивает, не хватает мне в PHP нативных геттеров/сеттеров, атрибутов/аннотаций… В любом случае, стоит попробовать не только PHP, а и на .NET сайтик наклепать, принципы то те же, ну и питон можно потыкать, нежная штука.