The story about arbitrary clusters has two sides to it.
The one is about usability. The current implementation is "good" because the state is immediately visible and easy to handle. On the opposite, imagine absolutely arbitrary clustering, across banks and all, and how you would find out what is playing in which order. The idea does not appeal to me, but there sure is a way in the middle and that is why we are here and discuss.
The other side is about implementation effort, which indeed is significant, and will probably have to wait until other things are in place.
Like ..oh yes, SYSEX data compatibility across versions