Ответы на все три вопроса зависят от вашего подхода к разработке и культуры кода. На правах советов:
#1 Наличие отдельного бэкенда даёт больше возможностей масштабирования, и меньшею связанность. Но зачем тогда серверсайд для сайта? Отдельные методы под json — это двойная работа, которая и так уже сделана в WebAPI.
#2 Как корпоративный программист я не силён в человеческой авторизации, но то, что вы описываете и так похоже на современный метод работы с токенами: посмотрите в сторону refresh token.
#3 Это будет авторизация вашей внутри инфраструктуры, так что делайте как удобно. Метод этот — явно не CRUD, можно сконфигурировать отдельный роут для подобных запросов.