You're welcome!
I wasn't suggesting that you necessarily implement FlashWindow() in terms of FlashWindowEx(). Just that you model the driver entry function after FlashWindowEx() instead of FlashWindow(). If the driver doesn't implement the full semantics of FlashWindowEx(), that's OK. It's no worse than the semi-stub that FlashWindowEx() will be.
It's OK for the driver to implement just that subset of the functionality it's able to. It's not OK for the interface of the driver to prevent the implementation of the full functionality. Don't forget, there are other drivers than X11. The Mac driver may have greater flexibility to more fully implement the functionality (or it may have less). But if the entry point doesn't provide the information, there's no chance for it to do as much as it can.
Again, the way the two functions are implemented at the user32 level is a different question than what the driver interface is.
I have the same objection as above. The driver interface should not be designed based on the capabilities of one specific driver (or things like WM/DE behavior, which are specific to that driver). It has to be general enough for any driver. The choices about what the driver actually does should be left to the driver, not user32. You're making choices which unnecessarily limit what the driver can choose.