I was thinking of either having a separate "Report to a mod" button for spam. If the report is valid, the post is deleted and a counter of "spam posts" is increased either in their profile or under their name.
I suggested something like this before, but if the post is off topic or blatant spam then you can just use the report to moderator function anyway.
With the current system, users would only get their posts removed, which in my opinion, is not enough of a penalty. If you look at the posts of some of the spammers, many of those are not completely removed. By penalizing in a more serious way, spamming can be discouraged even more strongly, and by making a counter for the number of spam posts that have been deleted by each user, owners of campaign can penalize users themselves (perhaps each deleted post = -10 normal posts) and limit signature abilities.
EDIT: Oh, I see what you are saying. You are actually right. In fact, the spam / deleted posts counter could increase with any deletion of a post, since I don't see why mods would delete a post otherwise.
One alternative would be to just liit the signature's formatting capabilities either by both the current activity system and the spam post count or just the spam count by itself.
The signature's formatting are now limited by activity.
I know that, but I feel like this system is could be complemented with the one I am suggesting. I don't feel like the current one protects too well against people with both a high activity level and with many spam posts.