Well, the patch apparently helps in some cases and hurts in others, so the only way to decide is to write a test and determine what the exact behavior is under Windows. I agree the current behavior looks wrong, but that doesn't mean anything when dealing with Microsoft code...
A quick foo.c shows that even Windows 98 respects the lack of the REUSEADDR flag in meaningful ways; the attached socktest.c shows that binding the same port twice fails on the second request, but emulating the current Wine behavior (which can be done by turning on parm #4) causes a success.
As such, Wine is badly broken; any algorithm that relies on iterating through possible ports and doing something meaningful when a port is already in use will be utterly useless with the current code.
I'll go ahead and see if I can't figure out how to modify the regression tests to properly test for this.
Cheers,
Jer