This is an odd bug report as I do not have any hardware to demonstrate that there actually is a bug. But my story strongly suggests that there is.
The background is that I was trying to implement support for this command in an AVR simulator, simavr. It seemed straightforward, but when tested, I found that gdb would endlessly repeat the initial command, which is supposed to return the number of I/O registers. Trying to understand that, I looked for a working implementation and downloaded the source code. I was surprised to find code in Avarice very like my own.
After some digging in current gdb source, I was able to make it work. The command uses a gdb function that seems intended to retrieve data of indefinite length, perhaps the contents of a file. It repeats the command, concatenating the replies, until it receives an empty reply, which it treats as end-of-file. So the way to make this work is to reply normally and then send an empty packet on the first repetition.
I found no such code in Avarice, making me think there is probably a bug with this command. I hope this proves useful.