The current subsystem implementation is not intuitive and has two glaring problems:
You can't load a subsystem if content is not loaded in the core that you want to use.
The menu is not intuitive.
In my opinion it should be a wizard like menu with context sensitive options for a better experience.
Something like this:

Those would have been steps to follow to load subsystem type content.
If there is only one subsystem step 2 would be skipped to the contents directly.
The place to implement the first part would be around here:
https://github.com/libretro/RetroArch/blob/0f4744bed7cdb2f86e0a533f9ccdc263fa3a270b/dynamic.c#L179
If support no game can be figured out before loading content, this should be fixable too.
part 1 of the issue is fixed at least