It only happens if you remove more than 1 logic block at a time, and only with specific logic chains.
The undo action only remembers all the links from 1 block at a time, it removes all the others.
- Example 1: linking 1 activator to 1000 delays, deleting 400 delays and undoing that will preserve all links. Deleting 400 delays including that activator will however only preserve 1 of the 400 links after undoing.
- Example 2: (A stands for activators, -> is a C -> V link) A -> A -> A -> A -> A, removing one of them at a time preserves the link on undo. Deleting the last 3 of the 5 and undoing will result in only the 2 -> 3 link coming back.
Someone made a youtube video about it too: http://youtu.be/woIa0JlMIkE
There's another issue too, if you copy paste overlapping logic blocks and then undo your change, the overlapping links will stay