Does it do Maildir? ;)
Maildir + delivery time indexing.
I always heard that Cyrus starts to "suck" really bad the larger the mailboxes geht. That was the thing why I didn't use it so far and rather used Courier-Imap which has been pretty good to me (for forever).
The only thing I found that sucks on cyrus is the BDB usage (or the internal skiplist implementation) for storing indexes. If the indexes fry, it is a long slow recovery. In the "sucks for me, maybe not for others" category is everything is owned by one uid, and it isn't the actual owner. Which means, grep is not the user's friend.
As to speed, like I said, with 30,000 messages, it is fast. I can open such a mailbox in under a second with pine. Some mail clients insist on downloading the *entire* index for a mailbox instead of just the page of data they need, those don't notice it so much. And, with server side indexing, imap body searches super fast.
The reason I left cyrus is the db. I'm now running Dovecot, which is _another_ maildir implementation. With indexes. Except those can be built at delivery time, or .. as needed when the mailbox opens. And recovery time is damn fast. You can blow away the indexes and few people will notice. It also stores mail in the user's dir, owned as the user. Major downside: tt lacks the server side indexed body search. "mairix" helps _me_ for that problem (I can run a CLI and a new mail folder is created based on my search parameters; as a bonus it checks ALL my folders at once, and is fully indexed with bodies). That won't help RC at all though.
List info: http://lists.roundcube.net/dev/