In reply to Kevin Floyd.

That’s not what I’m talking about. The way it's done traditionally (and also on the ESA) could be improved. Some other products (commercial or even postfix can be configured that way) don't accept the message until the SPAM-check is done. If the message is recognized as SPAM, it’s rejected (with a 500 code) which is possible because the SMTP-dialog is not finished yet.
The actual implementation has some drawbacks. Although the false-positive rate is really low, at least here in Germany, missing the one false positive could have severe legal implications. One actual example was that a lawyer didn't act on an important mail that he didn't see in the quarantine and was convicted for compensation.
If the spam check had been done while the SMTP dialog is still open, the SMTP receiver could reject the mail and the SMTP sender would directly recognize that the mail did not reach the recipient.