Otherwise, it does kinda seem that MX is a solution looking for a problem.
Hm, what about the nuisance that results when you generally like to keep m=0 (ie, 16-bit accumulator) but are forced to set m=1 before accessing an 8-bit I/O device, then set m back to 0 again afterward? You could avoid the nuisance and just always leave m=0 if your hardware was smart enough to deselect the I/O device during the extra bus cycle.
You don't need MX to do this, but it might be helpful. (The non-MX approach would be to have the hardware simply look for and prevent two succesive accesses to the I/O device.)
ETA: another non-MX approach is to map the I/O device in a way that interleaves some unused locations. For example,
- address $xx0 maps to register 0 of the I/O device
address $xx1 maps to nothing
address $xx2 maps to register 1 of the I/O device
address $xx3 maps to nothing
etc