Rate module and rule integration
It is not a bug. User voted up. His vote wasn't counted, but he voted all right. It might be used to update "last voted date" for example, or to give "forgetful" badge to an user who tries to vote many times on the same node. You either need to:


Look for an event that fires when vote is actually saved
Look for a condition that will let you filter out only new votes
Add if in the code that actually gets fired
If first two are not possible and third is to difficult, fill a feature request to add 1. or 2.


I'm deliberately not going to test these and find which one works, in hope future readers can benefit from algorithm for similar problems.