It is true that the relationship between elements and toolpaths is complicated and opaque to the user in the Design Environment.
The one-to-many and many-to-one cases of elements and toolpaths would still adhere to the rules:
Elements without toolpaths will duplicate as before.
If an element is part of more than one toolpath, the duplicated element will be part of all toolpath of which the original was a part.
If an element is the only part of more than one toolpath, each of those toolpaths will be duplicated.
The above applies to mixed cases.
As for toolpath groups, the rules would also still apply. I cannot think of any edge cases where things would get weird.
You do make a good point that all of this should be clear to the user. I did say that I was also concerned about the complexity, but you highlight the importance of legibility and transparency. The user should be aware of the consequences to the underlying toolpaths that actions on the design elements will have.
One solution could be to prompt the user with a dialog whenever an action is taken on a design element that has associated toolpaths:
If a user deletes an element that is part of a toolpath, a warning could appear to warn the user that the toolpath will be modified.
If a user deletes an element that is the only element of a toolpath, a warning could appear to warn the user that the toolpath will get deleted.
If a user duplicates an element that is entirely or partly associated with a toolpath, the user could get a prompt to choose to create a new toolpath or to associate the new elements with the existing toolpath.
All of these dialogs could have a “Don’t Show This Again” option so as not to annoy advanced users.
These are for the Duplicate command only. I do agree that elements pasted from the clipboard should create new toolpaths and toolpath groups always.
I’m glad we are having an in-depth discussion about this because getting this right (and I’m not saying that what I have proposed is the right way) will make the software very powerful and usable. Getting it wrong can make the software cumbersome and annoying.
And I do think that Rob and his team have done a great job with this feature so far.