Conforming Optionals to ThreadConfined

I was wondering if this is safe and correct:

extension Optional: ThreadConfined where Wrapped: ThreadConfined {
    public var realm: RealmSwift.Realm? {
    public var isInvalidated: Bool {
        self?.isInvalidated ?? true
    public var isFrozen: Bool {
        self?.isFrozen ?? true
    public func freeze() -> Optional<Wrapped> {
    public func thaw() -> Optional<Wrapped>? {

The reason is I want to be able to do this:

public extension Published.Publisher {
    func observe<O>(_ keyPaths: O.KeyPaths...) -> AnyPublisher<ResultID<O>, Never>
    where O: ThreadConfined & MSObject, Output == O?
            .receive(on: DispatchQueue.main)
            .buffer(size: 1, prefetch: .byRequest, whenFull: .dropOldest)
            .map { ResultID(id: $0?.id) }

But freeze() only works on threadconfined types. (By the way, if the above observe method is incorrect I’d also love to hear it).