An Edge-Crossing program - is it useful?

The scheme described above can probably be extended to identify the intersection edges (based on edge colors), but TBD.
Likewise, cleaning-up (simplifying) long intersections of nearly parallel edges is very TBD.

Stephen’s suggestion of non-connecting edges might be better implemented using algebra - at least if all the edges consisted of straight-line segments. But this seems to be effectively an N-squared problem - compare every edge segment to every other edge segment. Clever programming can probably save many cycles, but I’m out of clever.
Finding intersections of non-straight splines would appear to be even more challenging.