Interesting. I did not know it was (mail) server side! I assumed that, like many PHP applications, those filters were just ran using a cron job that calls a PHP script periodically.
It runs server-side, on the delivery server. And the scripts are stored on the delivery server too.
This means that you don't have to synchronize your filters between mobile client A, laptop client B, webmail client C. Thy're all on the delivery server (which is usually the same as your IMAP server). The filtering happens before you log in to email, and before your client knows there is an email.
Sieve is a specification, not a product (and not some specific PHP script). It's part of the Dovecot package in the Debian distro. It's client-server, only because there is a protocol for a client to upload/update scripts. So there's a wire protocol for management. But it has nothing to do with retrieving mail. Sieve on the server only affects what happens on delivery.
I think Sieve is totally the sanest way to do per-user mail fitering.