Unfortunately I don't have two devices with the same ID and no serial number to test, but assuming Linux et al deal with them correctly, there sure must be some way? I guess Windows could resort to using the bus/device number information only when there is no other way of distinguishing between two devices (serial number, USB PID/VID...).
The impression I get is that when Windows executes the "Found new hardware" thing, it installs (usually from Windows Update, if the setting is enabled) the drivers, but it's as if the drivers were installed for that USB port only... it appears to install the driver again and again as I move the device to other ports. This is not the way Linux deals with device drivers (once a driver exists in the kernel or is available as a kernel module, it works irregardless of the port), and as far as I know on OS X and BSD kernels it's similar.
Yes. The post might explain why the device is popping up as new, but it doesn't explain the reinstallation of an already existing, installed driver that's identical because it was just installed a minute ago when the USB device was on a different port.
The driver isn't being reinstalled. A second device is being set up.
Remember, due to vendors producing devices which share IDs with different devices, Windows can't assume that a device on a different port reporting the same device ID is the same device or works with the same driver.
Depends what you mean by "install the driver". Windows already has the driver on the disk in its driver store, but it won't actually start using it until a device requires it. But the driver isn't "reïnstalled" when you insert another device requiring it, that's just setting up a separate device.
The impression I get is that when Windows executes the "Found new hardware" thing, it installs (usually from Windows Update, if the setting is enabled) the drivers, but it's as if the drivers were installed for that USB port only... it appears to install the driver again and again as I move the device to other ports. This is not the way Linux deals with device drivers (once a driver exists in the kernel or is available as a kernel module, it works irregardless of the port), and as far as I know on OS X and BSD kernels it's similar.