Именно из-за того, что свойство можно "пощупать", многие и не любят js.
Как все происходит при классическом наследовании: класс-родитель "рассказывает" своим детям как надо жить на этой планете и пускает инстансы(потомков) в свободное плавание. Он говорит детям: вот ребят, берите мои знания (свойства), мои умения (методы) и уходите, можете развивать мой опыт, добавлять новую функциональность. При этом дети САМОСТОЯТЕЛЬНЫ, они не зависят от маменьки.
В JS дети более капризные, и с ними больше проблем. Они говорят матери: так-так, зачем мне самому чему-то учиться, ведь я всегда могу придти к тебе и узнать то, что мне нужно (то есть обратиться через прототип). Конечно, можно им переписать родительские методы или свойства, но по дефолту они берут все у родителей через прототип. И тут начинаются проблемы: через какое-то время маменька захворала и переопределила половину методов (это, конечно, отвратительная практика). Приходит к ней сын и разочаровывается.
Я попытался на жизненном примере описать то, что происходит. Конечно, мелких нюансов много. На самом деле прототипное наследование дает даже бОльшую гибкость, чем классическое. Но где свобода творчества -- там велик шанс появления ошибок. И за это JS опасаются. Почему на Java строят архитектуру на миллионы строк ? -- потому что это строгий язык во всех отношениях, и ошибок из-за этого меньше.