Well, hang on... can't you force a client to take a particular ID?  You
can do that with the hardware addresses by specifying it in asound.conf
so your MIDI interfaces stay in the same place across reboots (otherwise
it's a race to see which interface initialises first).

I managed to do that with different soundcards but I have not found a way to
do that with the same soundcards (I have 3 amt8's I'd like to reliably map).
Greetz,
Immanuel