texture projection paint settings in blender
It is the angle between the surface's normal and the vector from the surface to the camera (an orthographic view vector).


Top view.  

This means the angle is small for faces pointing directly at us and larger for face viewed at an angle.

If you wish to exclude surfaces which are not viewed directly from the from, decrease the normal angle value.


I think the inaccuracy is due to the large brush and the bleed settings, but the idea should be clear.

While texturing from a camera projection you usually want a low normal angle. From the camera view the faces oriented away from the camera, will have less pixels per surface and the texture will be more distorted. Use a low normal value to avoid painting on the, then paint on them from a more perpendicular viewing angle with a different reference image.