Браузер перешел к клиентскому приложению, был перенаправлен на сервер авторизации, который выполнил аутентификацию пользователя и выдал код. Если сервер авторизации будет вызывать клиентское приложение через обратный канал (прямой сервер-серверный вызов), чтобы передать код клиентскому приложению, ему все равно потребуется перенаправить браузер обратно в клиентское приложение после завершения.
Что бы сделал браузер, чтобы связать себя с выданным кодом? Как клиентское приложение узнает, что входящий HTTP-запрос относится к выданному коду?
Использование параметра состояния, сгенерированного клиентом, для этого намного рискованнее, чем код, созданный сервером авторизации (время жизни второго из них значительно меньше).
Кроме того, не все серверы авторизации могут отправлять исходящие запросы.