Here's how I would think about this without using orthogonality, determinants or eigenvalues:
We hypothesize that matrix P produces a rotation of theta around an axis running along vector a=(1,1,1) going through the origin. We're given a point v=(x,y,z) and asked to determine the rotation around a.
First let's construct the vector r perpendicular to the hypothesized axis of rotation (let's just call it "the axis") and connecting it to v. We know v=ca+r (where c is some scalar) and r.a=0. Taking the dot product of the first equation with a gives v.a=ca.a+r.a; given r.a=0 this implies c=(v.a)/(a.a) and hence (from the first equation) r = v-ca = v-a(v.a)/(a.a).
In the same way we can find the vector s perpendicular to the axis connecting it to w=Pv: introducing a scalar d analogous to c we find d=(w.a)/(a.a) and s=w-a(w.a)/(a.a).
Now if P is indeed a pure rotation around the axis we would expect for any point v not on the axis that (1) the perpendiculars r and s run from the same point on the axis; (2) they have the same length; and (3) the angle between them is the same regardless of the choice of v. This means (1) c=d, (2) ||r||=||s||, and (3) cos t = r.s/(||r|| ||s||) is constant.
With a=(1,1,1), v=(x,y,z) and w=(z,x,y), we have, first, c=(v.a)/(a.a)=(x+y+z)/3 and d=(w.a)/(a.a)=(x+y+z)/3, so c=d is demonstrated. Second, r=(x-c,y-c,z-c) and s=(z-c,x-c,y-c), so ||r||=||s|| is easily demonstrated. Finally cos(theta) = r.s/(||r|| ||s||) = [(x-c)(z-c) + (y-c)(x-c) + (z-c)(y-c)] / [(x-c)^2 +(y-c)^2 + (z-c)^2] = -0.5 (after simplification), so theta = 120 degrees or 2 pi/3.
v=(2,3,-5) is a special case where c=d=0, so r=v and s=w.