The Stack Overflow script basically looks like a rate limiter. If we don't want to bother with reversing votes, we can just put the rate limiter upfront, similar to how many login programs would start to throw in delays and time limits for repeated bad-login attempts. Something along the lines of "You are allowed 8 votes within one minute, 32 votes within one hour, 64 votes within 24 hours, and 128 votes within a week". These numbers are arbitrary, of course, and the real limits should come out of the statistical analysis of actual voting patterns.
SO also has direct rate limiting (40 votes a day). I do think that it makes sense to have a separate rate limit for user-user links; maybe I can vote 100 times a day and have it be normal, but voting even 10 times a day on a particular user might means something funny is going on.
I've gotten sufficient evidence from support that voiceofra has been doing retributive downvoting. I've banned them without prior notice because I'm not giving them more chances to downvote.
I'm thinking of something like not letting anyone give more than 5 downvotes/week for content which is more than a month old. The numbers and the time period are tentative-- this isn't my ideal rule. This is probably technically possible. However, my impression is that highly specific rules like that are an invitation to gaming the rules.
I would rather just make spiteful down-voting impossible (or maybe make it expensive) rather than trying to find out who's doing it. Admittedly, putting up barriers to downvoting for past comments doesn't solve the problem of people who down-vote everything, but at least people who downvote current material are easier to notice.
Any thoughts about technical solutions to excessive down-voting of past material?