You should add the `vkEnumerateInstanceExtensionProperties` and `vkGetInstanceProcAddr` implementation as early as possible in this first MR. I don't think anything will try to create surfaces unless they have checked the VK_KHR_surface / VK_KHR_win32_surface extension presence, so all the functions introduced here are basically dead code.
Regarding the later upcoming changes I think you should leave the swapchain wrapping for later and instead use `minImageExtent` from `vkGetPhysicalDeviceSurfaceCapabilities2KHR` (which you should also implement before `vkCreateSwapchain`) to indicate that 0 is unsupported. If that's not enough we may later consider wrapping swapchains but I would be more comfortable if we didn't introduce it only for this purpose if there's a simpler way.
Last nit, "winewayland.drv: Implement vkDestroySurfaceKHR" misses a final dot.
Other than that it looks okay.