"As a relatively simple example, I use amavisd-new and Spamassassin to flag mail with a spam header. Then Dovecot LMTP with sieve looks for this header and if it is present it delivers to the user's "Spam" folder."
Well this is interesting. I have a similar setup for postfix. With my desktop email client (Claws), the program "builds the tree" based on what I assume resides on the email server. So what on the server creates this spam folder? I still rather just let the client filter the message based on the header rewrite. Less work.