1)Стоит ли использовать ООП в JS? Если стоит, то почему оно там так слабо реализованно? Если не стоит, то как мне достичь хорошего уровня абстракции, привык с объектами везде работать.
Воспользуйтесь coffeescript там ооп попривычнее
2)Стоит ли использовать геттеры\сеттеры для классов JS?
См поддержку
https://developer.mozilla.org/ru/docs/Web/JavaScri...5)Корректен ли подход - прописывать onClick + функцию, или же лучше прописать id и потом через jQuery после подгрузки страницы найти все необходимые элементы по id и прописать клики, типа $("#id").click(...)?
Второе получше будет, ибо потом тяжко будет логику переделывать и несколько обработчиков не повесишь.
3)Стоит ли для каждого класса js создавать отдельный файл? Если у меня будет на странице подключаться 10-15 файлов js - хорошо ли это?
На этапе разработки нормально, в продакшен кидайте объединенную и минифицированную версию
6)Вся страница разбита на блоки (в моём случае это JSP-теги 2.0) с параметрами. Мне кажется удобным в этих блоках прописывать рядом с HTML теги script и в них уже - логику. Корректен ли такой подход?
Абсолютно некорректен (у вас же на сервере разделены шаблоны и код - на клиенте аналогично нефиг все в кучу лепить)
7)Говорят что лучше разделять логику и представление, но если я разделю их - как я сделаю var thisSection = new Section("${section.id}"), т.е. как создать переменную, привязанную к конкретному блоку HTML-разметки, но при этом не объявляя её внутри этого блока?
Вот это что-то совсем непонятное