I don't know what could be wrong with your setup. I have multi-disk games with extensions .bin, .cue, .chd, .dsk, and .rvz, and disk swapping is working correctly in RetroArch. I have created .m3u files for all of them.
Example of a PSX game:
Chrono Cross (Disc 1).bin .Chrono Cross (Disc 1).cue Chrono Cross (Disc 2).bin .Chrono Cross (Disc 2).cue.m3u file:
.Chrono Cross (Disc 1).cue .Chrono Cross (Disc 2).cueAnd sleve_mcdichael suggestion is a very good solution that I didn't know