Duplicate points are not a problem (besides I removed the last duplicate point).
bitmap2component generates valid polygons.
However, these polygons can have holes.
In this case, these holes are connected by 2 overlapping segments to the main outline.
In this a very usual way to generate a polygon "with holes", and this is a valid polygon.
Zones use widely these polygons without any issue.
But these polygons are not easy (read: cannot) to edit by hand:
they need (like zones) to be converted to a set of polygons: main outline and holes.
Beside our cross-intersecting polygon detection is overzealous:
it detects (incorrectly) such polygons as self-intersecting.
Duplicate points are not a problem (besides I removed the last duplicate point).
bitmap2component generates valid polygons.
However, these polygons can have holes.
In this case, these holes are connected by 2 overlapping segments to the main outline.
In this a very usual way to generate a polygon "with holes", and this is a valid polygon.
Zones use widely these polygons without any issue.
But these polygons are not easy (read: cannot) to edit by hand:
they need (like zones) to be converted to a set of polygons: main outline and holes.
Beside our cross-intersecting polygon detection is overzealous:
it detects (incorrectly) such polygons as self-intersecting.
The crash in an other story.