Maybe it is possible to introduce KMT adapter list and implement enumeration purely on win32u (adding some field to gdi driver gpu data and win32u caches on the way if that turns out to be necessary)? Then probably existing functions which go to gdi driver can be moved to win32u on top of that later.
I can experiment with that, sure. I have no idea yet what sort of field would need to be added to GDI driver data and/or win32u caches for this to work; after all, the enumeration itself shouldn't be too hard, it's the interactions with other existing D3DKMT functions I'm worried about. That in turn makes it very tempting to just try the "call `D3DKMTOpenAdapterFromLuid` for each LUID" idea and accept that in the future this function would have to be updated. But in any case, it will introduce some inconsistencies that I'm not sure if everyone would be comfortable with for the time being.