БЭМ-это css-реализация теневого дерева (Shadow DOM), если присмотреться внимателей. Так, что лучше использовать его сейчас, до того, как появятся полноценные веб-компоненты. БЭМ в чистом виде мне не очень нравится, поэтому я использую собственную модификацию, плюс, лучше использовать для этого SASS/LESS так как селекторы получаются достаточно пухлыми.
С версткой смотрите в сторону jade(js) или slim(ruby), они позволяют переиспользовать код и накопить n-вариантов решения каждой задачи, потом будете просто подставлять и допиливать, а писать только новое и скрипт.
Изучите более серьезные проекты (angular, amber), там сможете почерпнуть для себя свежие веяния в UI-разработке. Тот этап, на котором вы сейчас находитесь подразумевает изучение максимального количества вариантов, скорее всего нужный родится сам в каше знаний.
Когда зарабатываешься, то раздражать начинает, каждая запятая в коде и худжший способ разобраться с этим — попытаться навести порядок в работе — больше отдыхайте, давайте мозгу соскучиться по любимому делу, тогда он будет работать более эффективно. Мне смена языка программирования очень помогает найти новые способы решения, казалось бы неразрешимых проблем (буквально сегодня закрыл целых 3 задачи, которые не мог решить по отдельности очень долго), лишь благодаря тому, что переключился с js на ruby.
Обратите внимание на шаблоны проектирования вообще. Начинайте писать код на бумаге, проектирование помогает избежать художественных поисков в процессе, а значит делает ваш код подчинённым логике, а не эстетике, как следствие удовлетворенность результатом увеливается в среднем на 100—150 %, по личным ощущениям, так что у вас цифры могут отличаться.
P.S. Сейчас занимаюсь продуктом для UI-разработчиков, в комментариях опишите, с какими трудностями/рутинными задачами и т.п. сталкиваетесь вы каждый день. Возможно, у меня получится сделать и вашу работу в разы комфортнее.