Don't get me wrong: I appreciate how quickly and efficiently moderators react to spam, but they can't be everywhere at the same time. And though unlikely, I even hear some of them have a life as well :-).
The best way to discourage spammers is to make spam as invisible as possible. They may not be intelligent, but they're smart, and they will find their ways, as I learned again today. (No I'm not telling how, I don't want to get others to the idea.)
Suggestion: authorize users with enough rep to preliminary remove spam answers and comments, until the removal is approved by a moderator. A spam answer which was posted 5 hours ago and is still there could have been made invisible when I saw it 3 hours ago.
To repeat: this not criticism towards moderators, I think they're doing a great job. Kudos!