Did you check the frame of the view/layer after the animation?
I think the problem is, that what you see is not what you get. The layer itself didn't changes its position/frame, but just its presentationLayer
did. Presentation layer is what you actualy see onthe screen. You could see this if you remove this line:
pathAnimation.removedOnCompletion = NO; // Delete or set to YES
Setting this to NO
caused the presentation layer to be on screen at different position than your view.
What you should do, is to set final position to the layer just before adding the animation to it.
view.layer.position = finalPosition; // You should calculate this
[view.layer addAnimation:pathAnimation forKey:@"arc"];