Ответ 1
Преимущества описаны в вопросе, с которым вы связаны. Они обеспечивают структуру, которую трудно достичь, когда вы являетесь клиентской стороной, чем просто отображаете данные и перезагружаете части представления с помощью AJAX.
Andrew Dupont представил презентацию в MIX 11 о написании поддерживающего JavaScript. Он описывает свое путешествие из вонючей кучи JS в более удобную базу кода. Это стоит посмотреть.
Дублирование зависит от того, сколько вы делаете на стороне сервера. Если ваш сервер обслуживает только данные, например. Контроллеры Rails, предоставляющие API JSON для доступа к моделям, должны дублировать модели на стороне клиента.
Я использую Rails только для доступа JSON для сохранения объектов моего приложения, за исключением некоторых представлений JSON. Все взаимодействие с пользователем и CRUD происходит на клиенте с помощью Backbone и jQuery.
До сих пор мне приходилось только дублировать модели в Javascript и создавать некоторые контроллеры для доступа и сохранения моделей на сервере.