This patch proposes to add a new option that ignores faces whose
normal is pointing in the opposite direction to the observer.
Generally LGTM, minor suggestions only.
a sqrtf can be avoided since you're only checking the sign of the dot product, cross_tri_v3 can be used instead. (applies above too).
should use use_ prefix here too, variable above does.
Use use_ prefix.
It would not be fully reliable and since callbacks used for snapping vertices and edges are also used for Mesh objects, this would add unnecessary overhead in object mode.
A solution would be to redo the same scheme used for Mesh objects in EditMeshs, but this would result in a lot of changes that could change the initial focus of the patch.
It is best to think of a solution in another patch as it would need more precautions (performance testing and others).