Хотелось бы узнать общепринятую точку зрения.
Вот есть явно фронтэнд — то, что взаимодействует с пользователями, вроде JS, JSF, ZK.
Есть явный бэкэнд — то, что осуществляет доступ к модели, например, и реализует какие-то внутренние API.
Теперь посмотрим на контроллеры, взаимодействующие с пользовательским представлением. Они 1) живут на сервере, с юзером непосредственно не взаимодействуют, но 2) частично сильно зависят от этого представления — скажем, данные могут опрашиваться из input-элементов страницы, а могут — из абстракций используемого для gui фреймворка. Если их роль сводится к тому, чтобы запускать те или иные методы чтения или записи модели, то не справедливо ли будет сказать, что они сами относятся к фронтэнду?
Т.е. выходит, что если некто пишет простое приложение вроде классического списка книг с использованием Spring MVC, то контроллер, наряду с View, относится к frontend? Если, конечно, контроллер не начинает сам отвечать за доступ к БД.
Специалист — это варвар, невежество которого не всесторонне :)