So in my opinion we need to have a physical adapter id -> logical index mapping in win32u, and keep the display settings linked to the physical adapters. This will also save a lot of complexity on the driver side as they won't need to sort anything anymore.
I agree that we should have a physical adapter id (or output name as in wl_output) to \.\DISPLAY* map. The map currently exists in graphics drivers. If we want to deduplicate code and put it in win32u, I think that's ok.
Ideally, we should let graphics drivers expose their physical adapters and outputs to win32u. Then we can build GDI adapters(logical adapters, that correspond to win32u outputs) and GDI monitors from the win32u physical display devices.
Then graphics driver API can use physical device information only to get and set device state, eliminating the need for something like X11DRV_ChangeDisplaySettings(), which uses GDI adapter names instead of physical device names, thus removing the need for GDI->physical device map. The D3DKMT* functions are worth looking into for defining such a graphics driver interface to win32u.
Anyway, this MR needs more thought.