I am correcting you: Playing 16-bit audio with a 24-bit output device doesn't distort anything. No matter the bit depth of the audio file you're playing, CoreAudio converts it to 32-bit floating-point PCM. Then it converts down to something the output device can handle. I'm pretty sure Windows does this as well.