>Going around the triangle clockwise (0,0), (0,20), (20,0), (0,0)
That is clockwise gcode but its not what you posted originally. Are you just using the above as an example in this specific reply?
>cuts different from counterclockwise (0,0), (20,0), (0,20), (0,0)
This code was in your original posting.
The code at the top and this code immediately above, will cut on top of each other, but going in opposite directions. However, that is different from the code you originally posted. Are you aware of that?