Currently, 'svn status' is done like so:
1. Crawl the working copy, building a massive hash of status
structures (interesting ones only, unless -v is passed, in which case,
one structure per path in the working copy).
2. If -u was passed ask the server to send you update information,
which is then laid atop the existing hash of status items (possibly
adding even more items to that hash).
3. Pass that hash back to the caller.
4. Caller sorts the hash keys, and flies over the hash doing the
printing.
This is, shall we say, inefficient. You should *see* how terrible the
performance is with, say, a Windows GUI.
'svn status' should be doing a single pass (combined working copy +
update info), and using the notification system to streamily hand back
status info to the client.