I guess that the main reason is that win32u device cache didn't exist when those D3DKMT functions were implemented (there was some caching in user32, but its scope was limited and user32 generally depended on the driver to do more of device management). I think it would be interesting to try to move adapters handles management to win32u eventually.
Thanks, that's more or less what I expected to hear. Having all that in win32u certainly sounds nice, but it also sounds like a long(er) term goal, not something I'd expect to be done, let's say, this month. With that in mind, how should I proceed? The current revision delegates most of the work to GDI driver for best interoperability with other D3DKMT functions but it's also another piece of code that would need to be rewritten at some point in the future. Is that something acceptable for Wine project, or should I instead wait for the move to happen and only then try to contribute an implementation for EnumAdapters2?