RemoteIO input returns data only on one channel on iOS, but both channels on Catalyst

I have an app that reads microphone input from the RemoteIO audio unit. The unit is configured to produce non-interleaved stereo Float32 data.

What I get on iOS (on a iPhone XS) is: one of the stereo channels filled with data coming from the microphone, while the other channel is all zeroes.

When I run the same app on Catalyst though, with a fully identical source code, no conditionals or anything, I get both channels filled with identical data, i.e. my Mac obviously has a mono microphone but RemoteIO in this case fills both stereo channels with the same data.

Firstly, is this known behaviour? Is it a bug?

Second, how can I detect that RemoteIO will fill only one of the channels so that I can duplicate it as necessary?

The reason I don't want to configure it as mono is, input may be coming from an external device, including some stereo source, even a stereo microphone and I want to have stereo data when available.