The plan here is that the geometry is only checked the minimum number of times: when oriented rings are first needed, and thereafter only if they are needed after the geometry is modified. In the common case (geometries are rendered thousands of times, but only rarely modified) we'll only ever check once, which is no worse than the previous code which also checked once.