I want to offset some closed curve and had a direction problem.
So I tried offsetting in both Inner and Outer direction to choose shorter length but that didn’t work either.
First, I tried many different schemes using Flip Curve before giving up and trying the method you suggested:
That worked for me in five of the eight cases so… I decided to copy one set of surfaces to all eight positions, which involved some tricky sorting of points and tree branching. The first set of surfaces on the left are copied to all eight positions (white group) and the offset curves at the bottom (green group) then worked fine.
They are far from the origin (186K units), which sometimes can cause problems, though these are not extreme. It’s always curious, though, to see how small differences can have big effects down the line.