The only reason I opted for a reactive system as opposed to a proactive system is allowing users to learn from the mistakes of others. I feel like it also creates more of a productive and positive environment than simply censoring people. And many times, a message isn't intended to be spam but could appear to be so.
If the message doesn't go through, then there's no reason to punish, right? So people could theoretically make infinite mistakes, aside from flooding maybe.
As for a message not being intended as spam, but could appear to be so, the bot would punish that, wouldn't it?