@obsidianspider
you may have some issues in connecting and configuring the buttons of your bluetooth controllers. But once it's done, it's really easy to switch between the available controllers in RetroArch.
Trying to ask your question "how does the system choose which controller to use?" (assuming system = RetroArch). Like I said in my first response, RetroArch define some indexes for the controllers. The default is player1 = index 0, player2 = index 1, and so on (I didn't make it clear in my first post). But you can change it in retroarch.cfg. What the RetroPie-Setup config editor and my joystick-selection tool do is just this: change these options in retroarch.cfg.
BTW: the options related to what we are talking about here are input_player1_joypad_index, input_player2_joypad_index, etc...