Первое решение, которое вы представили, является спокойным, поскольку вы постоянно используете глаголы Http. Второе решение не согласовано, потому что вы используете PUT для удаления чего-либо.
Если бы вы создали ресурс для представления транзакции регистрации и отзыва, вы могли бы сделать следующее:
POST /registrations
POST /revokations
Теперь, в случае отзыва, становится более понятным, что вы создаете ресурс (транзакция отзыва), который имеет побочный эффект удаления роли у пользователя. Недостатком является то, что теперь вам нужно тело POST, содержащее пользователя и роль, на которую влияет транзакция.
Ваше первое решение, безусловно, лучшее на мой взгляд.