Maybe first result can be reserved for OUT variables, others for multi result set
It's been many years, but if I recall correctly, T-SQL returns a series of result sets, with no description of the result sets to be returned, each of which must be consumed fully before the client can move onto the next result set. Then and only then can the output parameters be read. Which was very frustrating because the OUT parameters seemed like a good place to put values for things like "result set 1 has 205 rows" and "X was false so we omitted one result set entirely" so you couldn't, y'know easily omit entire result sets.