Źle to rozumiesz (osobiście nigdy nie pracowałem z Backbone, ale z czymś "bardziej", czyli Angularem). To jest wzorzec MVVM (Model-View-ViewModel), który zakłada 3 warstwy:
- model dostarczający dane (w tym przypadku jest to część strony działająca po stronie serwera)
- nieaktywny widok, który opisuje jak wyświetlać dane w dość obszerny sposób
- ViewModel, który zajmuje się spinaniem obu tych rzeczy oraz odpowiednim ich przygotowaniem do wyświetlenia
Dzięki takiemu podziałowi pracy designer nie musi tak ściśle współpracować z front-end developerem, gdyż całe wyświetlanie należy tylko do widoku, który jest dodatkowo nieaktywny. Dodatkowo podmiana backendu jest bezbolesna, gdyż jedyne co jest wymagane by zachować kompatybilność to utrzymać stałe REST API. Nie trzeba przepisywać widoków jak często bywa przy przechodzeniu z języka A do języka B (co często implikuje zmianę języka szablonów). Poza tym praktycznie całe FE możesz wtedy trzymać w CDNie i odciążyć serwer, który w takim wypadku będzie mógł obsłużyć większą liczbę użytkowników przy tych samych parametrach pracy.
Co do bezpieczeństwa, to jeśli masz już dobrze zaprojektowane API aplikacji, to nie ma najmniejszego problemu z bezpieczeństwem. Ty nie zrzucasz całej odpowiedzialności na JSa tylko dajesz tam tą część, którą musiał by normalnie wykonać serwer, czyli np. wstępną walidację formularza i wyświetlenie użytkownikowi informacji, że formularz jest niepoprawny nawet bez przeładowania strony. Oczywiście back-end powinien też sprawdzić poprawność danych, bo wprawny napastnik będzie potrafił zmienić dane zapytania zmienić jeszcze przed ich wysłaniem.
Oczywiście, że można w ten sposób tworzyć duże serwisy. Nie wiem z jakiego frameworka (o ile nie autorskiego) korzystają takie aplikacje internetowe (a przynajmniej tak mi się zdaje):
- GMail
- Google
- Google+
- Twitter
- Facebook
- GitHub
Oczywiście przykłady możesz też znaleźć na stronach danych frameworków:
Osobiście pracowałem tylko z Angularem, pozostałych nie znam, ale może kiedyś jak będę miał okazję.