The two posts with incorrect reply.root values were both created by AI accounts AFAICT (the other two look human and were likely created via the Bluesky app).
So either the SDKs they are tool-calling to have a bug, or the AIs are misunderstanding the reply.root field and creating invalid posts.