Something I think I may have suggested long ago is some sort of "WINE hints" that WMs could implement; in essence, have calls to the WM that map to Windows API calls exactly and try to have the same semantics. IOW implement the windows API in conjunction with the WM.
This is probably the only way to make things 100%, 100% always work right; because it gets past the "impedance mismatch" between how native X apps work and how windows API apps work by giving them different codepaths.
I wouldn't know how to do this, but it's an idea.
Havoc