If I understand correctly, when fraud votes are removed, it is like those votes have never been done, which also means that who voted is free to vote on the same posts.
Instead of allowing the same user to vote again on posts for which the fraud voting has been detected, the user interface should show the vote, and if the voter tries to remove it, he should get an error message saying that the vote cannot be changed, even if the post has been modified from the OP.
Suppose that I have asked ten questions, and somebody would vote all my questions in ten minutes. As it is now, who voted could still vote my questions again, once the votes have been removed by the system, which could lead the user to "let's try again and see if my votes are automatically removed again," which means that the second time the down-votes could not be detected by the system.
If the user would not be allowed to vote again the same questions, the "let's try again" game would not work (or would not work for the same questions).
What I am proposing protects more the users who started using an SE site, or who use it less frequently than other users. It would not help users with a hundred questions, for example, if not in the case the down-votes would vote all those questions in once.
I am also not referring to the case of a user that keeps asking bad questions, even though it still is an irregularity, if the system detects (for example) ten questions (asked from the same user) being down-voted from the same user in about a minute.