- flushing hidden state ran when it didn't need to. - flushing checks didn't early exit when first visible element found. - low level BM_*_hide API calls like this can use skip iterators can loop over struct members directly. No user-visible changes.