Unexpected behaviour with async values of a filtered Publishers.CombineLatest

When I run the following code in the Playground (I'm on XCode 13.4):

import Combine
import Foundation
import _Concurrency

let subject = CurrentValueSubject<Int, Never>(0)

let faultyPublisher = Publishers.CombineLatest(subject, Just(-1))
  .filter { firstValue, _ in firstValue != 0 }

let publisherToTest = faultyPublisher
Task {
  for await output in publisherToTest.values {
    print("RECEIVED \(output)")
  }
}

Task {
  try await Task.sleep(nanoseconds: 1_000_000_000)
  subject.send(1)
}

I expect to see the output: RECEIVED (1, -1). Instead I see no output. Is this a bug with Publishers.CombineLatest + .filter + values: AsyncPublisher?

Some other note: if you assign publisherToTest to one of these, the behaviours are what I would expect:

let workingPublisher1 = Publishers.CombineLatest(subject, Just(-1))
  .filter { firstValue, _ in firstValue != 1 }

Above outputs: RECEIVED (0, -1)

let workingPublisher2 = Publishers.CombineLatest(Just(-1), subject)
  .filter { _, secondValue in secondValue != 0 }

Above outputs: RECEIVED (-1, 1)

let workingPublisher3 = Publishers.CombineLatest(subject, Just(-1))
  .filter { firstValue, _ in firstValue != 0 }
  .flatMap(maxPublishers: .max(2)) { Just($0) }

Above outputs: RECEIVED (1, -1)

Unexpected behaviour with async values of a filtered Publishers.CombineLatest
 
 
Q