Yet another option, this is more of a theory and programmatic
one, using arcpy. A polygon can consist not only of a single
outer ring with a single inner donut hole -- they can be nested
to an arbitrary number of levels. Consider the following: A
topologically correct polygon's rings are ordered according to
their containment relationship (source). Based on my results
below this appears to be in order of innermost to outermost with
exterior rings being listed before the interior rings within
them. Additionally interior rings (green lines) are always
within exterior rings (red lines). It is possible to have rings
that overlap each other, self-intersections, etc., but typically
these are considered topologically incorrect and are simplified
before they are stored. Another important point is the
distinction between parts and rings. A feature can have multiple
parts, and a part can have multiple rings. In the picture below,
think of each solid red shape as an individual part, each having
a single exterior ring an