I have a similar configuration as the thread starter, and I believe I can suggest a kind-of solution for that problem.
Retroarch provides different methods for polling inputs. Even if it sounds counter-intuitive for a windows based system, for your config to work properly you should go with sdl (and not with dinput or xinput).
What sdl seems to be doing, is to always register native xinput controllers first, any other controller types second. On my system it even manages to keep order within the subtypes itself, meaning whatever xinput gamepad for player1 will stay player1, and xinput gamepad for player2 will stay player2. Same for the controllers connected via my dolphin bar. It's been that way since I switched to sdl two months ago, and has never failed me.
So basically, if you put the dolphin bar into joystick mode, Retroarchs mapping will look like this:
1. X360 Controller #1
2. X360 Controller #2
3. Mayflash Wiimote #1
4. Mayflash Wiimote #2
5. Mayflash Wiimote #3
6. Mayflash Wiimote #4
When the dolphin is being set into mouse mode, it will be:
1. X360 Controller #1
2. X360 Controller #2
It's perfect.