Interesting question. Apart from the question whether this is optional or mandatory in the spec, there's another point: would this be an internal (broker implementor's) decision, or an external decision (by broker's administrator).
I can see it could be an administrative configuration for the following example. Let's take the server_moved response code in a CONNACK (where you can give a server reference). You would use this for the case where you want a historical MQTT server to stay up online, and tell all the connecting clients to permanently use another MQTT server.
You probably only want to give this information to authenticated MQTT clients, so you'd have to have full authentication on the historical server. As this is done by a plugin, the natural setting point for the CONNACK response code is probably a modifier in an "auth_on_register" hook.
I haven't looked at it and it might be implicitly possible to do this already.
Is my given example your use case, or are you trying to achieve something else?