Mostly for what it's worth, I don't think there are a lot of good reasons left these days for ddraw accessing the wined3d front buffer. In particular, in ddraw_surface_update_frontbuffer() we should be able to just blit to the back buffer and then call wined3d_swapchain_present() with a 0 swap interval.
For my own edification, why have we historically rendered directly to the front buffer?
There are of course some optimisations to wined3d's present path we'd like to make regardless.
What do you have in mind?
We may want to consider building recreate_texture() from patch 3/7 on top of a helper to create a texture from a wined3d_swapchain_desc, shared with wined3d_swapchain_init().
Yes, that sounds like a good idea. I'll try adjusting this accordingly.