I reworked the code by @jbicker in order to address the main problem of implementing editable edges: The actual routing of edges, which considers anchor positions of source and target nodes, is computed in the view, not on the command stack.
When I move two points on top of each other (or close to the source anchor) and I create a new point in the following segment, it is created in the wrong segment.
Moving all routing points when source and target nodes are moved does not work.
I reworked the code by @jbicker in order to address the main problem of implementing editable edges: The actual routing of edges, which considers anchor positions of source and target nodes, is computed in the view, not on the command stack.