Rob,
I no of no situation where _TALLY is inaccurate, if you have a reproducable example you should report it to MS so they can fix it.
BTW, your work around will also fail if the array existed before the SELECT command that returns no rows. In this case the array will not be changed from what it was and the first element may contain a valid value.