The DAC can't tell whether what it's being fed is bitperfect or not. It just reports what it's being given.
It showing 32 bit means the OS is feeding it 32 bit data.
When I tested IOS previously, it was bitperfect so long as you had the volume maxed, but it may just be padding samples, which means it's taking the 16/24 bit info, but adding zeros to the end of each sample to up them to 32 bit. This is likely just to make sure that the connected device doesn't have to stop/resync or something when you start adjusting volume. If it was bitperfect at max vol without padding but then swapped to applying vol control + dithering at 32 bit when you turned volume down, the connected DAC would suddenly see a different audio format and would probably momentarily stop playback.