ACK. Another option would be to not call the state callback for the vdagent subtype from spice-server, because like you say it ignores the continued communication between the agent and the server. Then you could remove the subtype check.
We can even #ifdef the check using SPICE_SERVER_VERSION once the spice-server change is committed, and in a year or so we can raise the minimum required spice-server version and remove some #ifdef clutter.
cheers, Gerd