The binlogrouter needs to manipulate the protocol structures in order for the resultset buffering to work correctly. If the state isn't manipulated for COM_QUERY statements, the resultsets aren't buffered and will be routed in separate buffers.