While playing around with the Roomplan example I noticed that in the iOS 16 beta 4 the captureSession(didAdd) is also called with updated surfaces (openings, doors, windows....) in the room parameter, which previously only contained newly added. (I was using the captureSession(didChange) for updating, but that isn't called for surfaces any more).
I also noticed a multitude of runtime warnings about existing UUIDs of surfaces while running the standard example on a iPhone 13 pro, downloaded from the WWDC 2022 page https://developer.apple.com/documentation/roomplan/create_a_3d_model_of_an_interior_room_by_guiding_the_user_through_an_ar_experience. (in the form of [ScanUI] Opening scanItem with UUID 2A9AAC74-EB4F-4394-A49A-148E417D95AD already exists)
Objects still work fine (so only the new ones get passed in the didAdd function delegate)
I filed a bug report, would be interested if I were the only one noticing this.My workaround is to check each surface identifier with a local dictionary (additional housekeeping to select either add or update surface in the visualiser).