Parce que -> est prioritaire sur *. Donc ta première version était en fait :
*(itSprite->setPosition (sf::Vector2f (x,y)))
Sinon, tu peux aussi tout simplement écrire
itSprite->setPosition (sf::Vector2f (x,y))
Un itérateur a la même sémantique qu'un pointeur.
nAnimFrame = (nAnimFrame + 1) % FrameCount;
Ensuite, même s'il avait fallu plus de lignes et un if, peu importe. La lisibilité et la maintenabilité sont plus importantes que le nombre de lignes. Tu ne fais pas un concours du code le plus compact ;)