Вот тоже так же думал(пока только исследую three.js), но по непонятной причине при иерархии Object3d -> Object3d -> Mesh до меша не проходит raycaster.intersectObjects(), но возможно действительно не верно делаю(если кратко: scene.add(obj), subObj.add(mesh), obj.add(subObj)).
В целом согласен, но на примере того же less в css могу сказать что если данный инструмент позитивно сказывается на производительности разработчика и структурированности данных - это плюс. Но обертка должна дополнять и улучшать действующие механизмы, а не переворачивать все с ног на голову.
Сергей Протько: полностью с вами согласен. На заданный вами вопрос: в том то и "особенность" чтобы писать и успешно запускать проекты ответа на подобные вопросы в подавляющем числе случаев не понадобиться, это если утрировать - сравнение практических знаний с академическими, знать теорию и использовать крайне разные вещи. Языки с низким порогом вхождения позволяют без "теории" - практиковать, но проблема в том, та самая пропасть, что мало кто будет иметь желание развиваться и копать в глубь.
Сергей Протько: Я вот собственно этот вопрос задал только узнав про то что angular2 будет на нем и видимо так же будет сейчас аргументом чтобы изучить именно его, хотя до этого хотел глянуть react(при всей моей ненависти к xml и религиозном не понимании зачем его пихат в js на пару с разметкой компонентов).
SEO и js? Эмм, да поисковики научились отрабатывать js(в итоге на сайте ведь после компиляции из "обертки"), но причем здесь оно?
1. Важный момент, собственно в промышленной эксплуатации: простота поддержки и скорость разработки-внедрения крайне важны.
2. По вашему мнению если оперировать обозначенными вами аргументами - какую цель преследуют разработчики ставя их во главу угла?
IceJOKER: можно но тогда :focus не будет работать... Я вот этот вариант как раз и рассматривал перед тем как написать данный вопрос здесь. Наверное на нем пока и остановлюсь.