どうやって実装しようかつらつらと考えて見ました。
一つ目の方法は、今までどおり受信が終わったらメインスレッド側で普通に振り分けを実行する方法です。パラレルで同期できるようになったので少し厄介ですが、振り分けるフォルダをキューに入れておいて、同期状態が終わったときに順番に振り分けていけば良さそうです。しかし、裏で同期をしながら表で別のことをしていると、同期が終わったとたんにメインウィンドウがブロックされてしまうわけでいまいちです。同期ダイアログが出ている間はおとなしく待っているような使い方*1だと問題ないのですが。特に、新着メールチェックを使っていると突然振り分け始めてしまうので相性が悪そうです。
二つ目の方法は、受信中に振り分けを実行するという方法です。一通ずつ、もしくは一通り受信が終わってからまとめて受信中のスレッドで振り分けてしまうという方法です。この方法は素直で良い方法なのですが、以前QMAIL2でこの方法を実装したときにはなぜか反対にあって元に戻した記憶があります。弱点は、ダイアルアップで接続している場合などに、振り分けが終わるまでダイアルアップが切断されない点です。また、別スレッドで動作するので、一部のマクロの使用に制限をかける必要があるかも知れません。同期フィルタと振り分けがほぼ同じタイミングで実行されるので、ユーザから見るとこの二つが分かれている理由がわかりにくいかも知れません。
今のところ後者の方法に気持ちが傾いているのですが、QMAIL2時代に反対された理由が気になります。
*1 Windows CEで使っているとそんな使い方になるかも