I haven't took a look through the new changes myself, but I'm guessing that Appium is using UiObject2 now. According to the Android docs, UiObject2 objects will "become stale if the underlying view object is destroyed." This is still a bit vague since View objects that are children of ListViews can be re-used, which would imply the UiObject2 reference will not become stale.
Speculation: My guess is that each child View of a ListView re-registers itself with the AccessibilityService when the View object is recycled and redrawn. The moment of re-registration is probably when the UiObject2 reference becomes invalid. Would be nice to dive through the AOSP code to confirm if this is the case, though!