I love this question.
The way I see it is:
- All memory cards must start in their factory state, including spare ones.
- Having multiple consoles running in parallel is OK.
- Swapping memory cards with spare ones is OK.
- Formatting a memory card and/or copying data between memory cards is OK if done on any available console.
- Ejected memory card data can be moved from a console to another, starting from the frame the memory card was ejected.
- There should be full input provided for all consoles for verification.
Of course the final decision will go to a judge, but I believe it's the only possible way you could be allowed to do what you want to do.
This is unlikely because it implies that some dev has to code the operation 'transfer memory card to another instance of dolphin running in parallel' and have it be sync-stable, TASable, etc. Given how often anyone would want to use this, is it worth not just the development time but the development burden (has to not break or break things in the future)?
The only problematic part here I see is that copying the file won't happen instantaneously, so to emulate it in realistic manner would take coding some delays, during which the memory card is not available.
(This is from "could this happen in reality?" viewpoint).
No need to do something that complicated. Just make a separate movie file per console. Only thing to code in the emulator is a memory card replacement function. Of course a judge would need to check if the data matches, but that's it.