@Hans: Yes, VectorAngle[u,v] remains stable. But VectorAngle is very different from PlanarAngle since it does not honor the direction of rotation. It gives the smaller of the two angles between u and v. Hence it is useless for calculating rotation angles. You must enhance it with quite complicated case diffentiations according to the relative positions of p, q1, q2. This is why PlanarAngle exists. See:
p = {0, 0}; q1 = {1, 0};
Print[{q2 = #, VectorAngle[q1 - p, q2 - p],
PlanarAngle[p -> {q1, q2}, "Counterclockwise"]}] & /@ {{-1,
1}, {-1, -1}};
{{-1,1},(3 \[Pi])/4,(3 \[Pi])/4}
{{-1,-1},(3 \[Pi])/4,(5 \[Pi])/4}