Here's the way I see this: if a client is using a rowLimit (which they practically always are) and doesn't know whether the rowCount will be greater than the rowLimit (which they never will know) and doesn't set an orderBy (which they frequently don't do), then we will be returning garbage. It's impractical to replace that garbage with a 400 error, and this is the best alternative.

Cursors are an interesting idea which we can talk through. In the meantime, I'm happy to pull this in. Ben, can you reissue against 4_5_x ?