I think cycling is just a workaround for the problem. What I want is a smarter inference engine that just do what you expect it to do without you having to manually think about it. That’s the SketchUp way.
Currently there’s a small area (a square I believe) centered on each point. When the mouse cursor is in that area the input point snaps to the point. However when the points are close to each others and these areas overlap you can’t chose what to snap to. It seams certain snapping such as endpoints, always have higher priority than others, such as midpoints.
In this example it’s impossible to snap to the short edge because the whole edge is covered with snap areas from the point. If the edge is even shorter snapping to the midpoint is also impossible because the endpoint snap areas cover the whole edge.
I’d really like if these areas of snapping weren’t always centered on the snapping point but could repeal each other and better use the available space on the screen. That in addition to snapping to the closest possible point (basically following a Voronoi map) would give the user much more control. When building the Voronoi map the quarter points of edges could be used to create an area for edge snapping.
In this (badly drawn) example you can see how the snapping areas of the endpoints of the short edge have drifted away from the center. You can still snap just as easily to the endpoints, the difference is very subtle and hardly noticeable, but it allows you to chose exactly what to snap to, including the edges.
Also fixing the clipping issue would more or less solve this because then you could actually zoom in close enough to snap to any point you’d like.