I don't know, I feel that we don't really need all these layers? I would be fine with moving WSI compat code to win32u, it was only that for the moment we only have either winevulkan wrapping, or driver wrapping, and the only common place for code is in winevulkan.
If we want to wrap swapchains in win32u as well, we'd need to make that replace the winevulkan wrapping, or the driver wrapping, or introduce a third layer which doesn't look like a good idea.
So, alternatively we could either 1) move the "driver wrapping" to win32u somehow, sharing the wrapped structures between win32u and the user drivers, but some drivers store different data there, so would need a way to tell win32u to allocate the right size. Or, 2) we could move winevulkan wrapping there instead, which might be a bit more complicated. Or, 3) we could share winevulkan wrapped structures between winevulkan and win32u. Or 4) share the wrapped structures between all three layers somehow and get rid of the driver-level wrapping, still has the same problem as 1).