No, the message is also sent when the client requests protocol options that the server doesn't recognize. In that case, if the client requests an older protocol version along with unknown options, the server responds with the requested protocol version, not the latest one.
OK, I hadn't contemplated the unrecognized options. However AFAICT the documentation in the code state
/*
* If the client requested a newer protocol version or if the client
* requested any protocol options we didn't recognize, let them know
* the newest minor protocol version we do support and the names of
* any unrecognized options.
*/
and the code agrees that we send the latest protocol version that we support, not the requested one.