It’s by design that this happens in -swift-version 5, but it should not happen in Swift 6 mode.
However Sendable checking isn’t fully sound in either mode because of dynamic casts. You can erase any value to Any, and downcast to any Sendable, which always succeeds.