Some days ago I asked a question with a bounty (because I hardly ever get any answers, since people only answer to new questions). The first answer I got was absolutely useless, it didn't have anything to do with my question at all. In all, this answer got 4 down-votes, so -8 points. But suddenly some people up-voted it and the user got +10 several times. In all the user "earned" more than 50 points for giving an useless answer. In my opinion, this is not right.
The correct behavior should be that up-votes after down-votes should only correct the down-vote point count by giving +2 and not reward it by giving +10. For example, if the user gets 3 down-votes (-6 points) and 3 up-votes afterwards, he only should get +2 three times instead of +10 three times.
if score >= 0 then rep += 10*score else rep += 2*score
, which is equivalent with your proposal, if downvotes on positively voted questions count as -10.