Sendability warnings / errors disparity for AVFoundation types

With this setup:

@preconcurrency import AVFoundation

actor A {
    func getSession() -> AVCaptureSession { nonoptionalSession }
    let nonoptionalSession: AVCaptureSession
    let optionalSession: AVCaptureSession!
    
    func getLayer() -> AVCaptureVideoPreviewLayer { nonoptionalLayer }
    let nonoptionalLayer: AVCaptureVideoPreviewLayer
    let optionalLayer: AVCaptureVideoPreviewLayer!
    
    init() { fatalError() }
}

nonisolated class C {}

I am getting expected warnings about lack of sendability here:

extension C {
    func test1(a: A) async {
        _ = await a.getLayer()           // sendability warning (expected)
        _ = await a.nonoptionalLayer     // sendability warning (expected)
    }
}

(expected as if I change @preconcurrency import to normal import the warnings are changed to errors)

unexpected lack of sendability warnings here:

extension C {
    func test2(a: A) async {
        _ = await a.getSession()        // no sendability warning
        _ = await a.nonoptionalSession  // no sendability warning
        _ = await a.optionalSession!    // no sendability warning
    }
}

and somewhat unexpected error here (unexpected because similar code compiles without an error in test2):

extension C {
    func test3(a: A) async {
        // uncomment to see the error
        // _ = await a.optionalLayer!       // sendability error
    }
}

I guess Swift itself is in the clear here, and there's just some difference (in api notes?) for AVCaptureVideoPreviewLayer and AVCaptureSession that'd explain this observable disparity?

Not sure what’s happening here, but what’s interesting is that AVCaptureVideoPreviewLayer supposedly conforms to Sendable despite the diagnostic saying otherwise. My guess is that there’s an issue with Objective-C interoperability and sendability. Only my guess though, this all seems very random.

// Kinda expected, except for the methods
import AVFoundation

extension C {
	func test1(a: A) async {
		_ = await a.getSession()
		_ = await a.nonoptionalSession // error: Non-Sendable type
		_ = await a.optionalSession // error: Non-Sendable type

		_ = await a.getLayer()
		_ = await a.nonoptionalLayer // error: Non-Sendable type
		_ = await a.optionalLayer // error: Non-Sendable type
	}
}

// Random warning and error, despite the docs stating that 'AVCaptureVideoPreviewLayer' is Sendable ??
@preconcurrency import AVFoundation

extension C {
	func test1(a: A) async {
		_ = await a.getSession()
		_ = await a.nonoptionalSession
		_ = await a.optionalSession

		_ = await a.getLayer()
		_ = await a.nonoptionalLayer // warning: Non-Sendable type
		_ = await a.optionalLayer // error: Non-Sendable type
	}
}

// All fine as expected.
import AVFoundation

extension C {
	func test1(a: A) async {
		_ = await a.getSession()
		_ = await a.nonoptionalSession
		_ = await a.optionalSession

		_ = await a.getLayer()
		_ = await a.nonoptionalLayer
		_ = await a.optionalLayer
	}
}

extension AVCaptureSession: @retroactive @unchecked Sendable {}

extension AVCaptureVideoPreviewLayer: @retroactive @unchecked Sendable {}