You are entirely correct, and I am kicking myself. With the simplest possible config – the asoundrc removed entirely and the audio output switched to “PI: HDMI” – everything is working perfectly, all the speakers are correctly assigned, and I can’t hear any difference between passthrough DTS and non-passthrough Opus at all. Digging back through my old configuration logs, it looks like I added an /etc/asoundrc in the first place to try to get surround-sound tracks playing back properly in mpd, and then never removed it because why would I want to break mpd? (The solution is obviously to get that right in a new non-default alsa device that mpd can use, and then not use that device for Kodi.)
And the space saving, especially for DTS, is simply insane (far higher than going from AC3, even though AC3 is widely renowned as a simply dreadful codec). My testcase (the soundtrack for Soul) drops from 1085MiB to 203MiB, with, as far as I can tell, no loss of quality whatsoever. That’s about half as much space as the entire video track (after re-encoding to H.264), all completely wasted due to crappy codecs.
Thank you!