Not all the snapping modes can be active at the same time, even if all buttons are pressed. Here we have a close look at the possible interactions, and the priorities of snapping.
The two directional snapping modes restrict the possible mouse positions to a one-dimensional subspace of the canvas. Therefore, they are incompatible with the modes that try to snap to a zero-dimensional subspace, namely vertex snapping, intersection snapping, and grid snapping. Consequently, when one of the directional snapping modes is on, vertex snapping, intersection snapping, and grid snapping are ineffective.
On the other hand, it is reasonable to snap to boundaries while in a directional snapping mode, and this function is actually implemented correctly. When both directional and boundary snapping are on, Ipe will compute intersections between the snap lines with the boundaries of your objects, and whenever the mouse position on the snap line comes close enough to an intersection, the mouse is snapped to that intersection (again, the Snap distance threshold in the configuration panel is used).
The two directional snapping modes themselves can also coexist in the same fashion. If both directional and autodir snapping are enabled, Ipe computes the intersection point between the snap lines defined by the two origins and snaps there. It the snap lines are parallel or coincide, autodir snapping is used.
When no directional snapping mode is active, Ipe has three priorities. First, Ipe checks whether the closest vertex or intersection point is closer than the snap distance. If that is not the case, the closest boundary edge is determined. If even that has a distance larger than the snap distance threshold, Ipe uses grid snapping (assuming all these modes are enabled).
Note that this can actually mean that snapping is not to the closest point on an object. Especially for intersections of two straight edges, the closest point can never be the intersection point! See Figure.