It's been a long week full of tons of snow & heavy food, I tried to clarify what I had typed above through editing, but I might still be a bit unclear there so I'll continue here...
From what I recall, USB 'key' storage devices (as part of the USB specification) don't have a specific file system by default, though they will come preformatted (usually Fat32 though encrypted keys often use NTFS or hfs+ with additional encryption layers). Still, below that file system the low level interface itself uses the SCSI command set for the actual addressing of the data, which is defined by the 'USB Mass Storage' class. To 'recognize' the device, the OS first needs to recognize it as part of that given class of devices (USB Mass Storage' class), then load the 'class compliant driver' that provides the virtual SCSI interface.
There was a time when many class complaint drivers weren't present by default, nor was the mechanism for 'discovery', so above when I mentioned OSX (as of a certain point) & Vista having good class complaint support 'by default', what I mean is on non-updated systems you'll experience support for a far wider range of hardware (ie, from initial point of install). Certainly over its lifespan
Xp32 has gained more classes (usually with service packs or those updated USB drivers you may have installed early in Xp's lifespan to 'enable' better USB functionality and timing.) Any 'fixes' on Vista would be changes in the class complaint drivers or the handling of USB classes themselves. I've got no knowledge here only my experience, which is that I see confirmation of inserting devices there as well (just like in a current up-to-date Xp install). In fact if you don't disable UAC and other such 'niceties' in Vista, I think there are actually more prompts now from what I recall?
Anyway, once the OS sees the virtual SCSI layer it can then read & write the device like any other HD. It's convenient to think of this as a sort of 'bootloader' but I believe it really functions by recognizing the device ID & class of the device itself on a given addressing path, so attaching the usb key device to another port shows up as a separate device because the path to device has changed. So it's my understanding that this is the reason it's bound to a specific port, it's much like having /dev/hd0/ before the file system path on *nix. Change that to /dev/hd1/ and it's not magically seen as the same thing to the system, although the file system layer on top can mask that through its own pathing once you've initialized the drive itself (like the first USB device you insert as always showing up as J: once 'loaded', due to that being the next drive letter free, or whatever).
Now all of the above was only intended to reply to Xite-1/4Live's question about USB 'memory' sticks used for data storage.
Your (darkrezin) experiences with the pad kontrol could be an issue specifically with that manufacturer's driver, or with the OS's midi stack (as addressed by RME's "
10 Entry Limit" article). Out of everything I have here the ONLY devices I have those issues with are from Behringer (BCF2000) and M-audio (ancient 'midiman' USB midisport 4x4). I have other devices that do the same functions (Bitstream 3x midi controller, 2 Motu micro express midi interfaces) and they don't have issues with 'losing' the device on different ports or sometimes being unworking until unplugged/replugged. Which leads me to believe the driver issues with them are not the fault of Microsoft's host OS.
Looking beyond this to other devices opens up a lot of different issues. Many devices do not present a filesystem layer to the computer (like usb keys do). But if they do (iPod, camera or printer for example), there's a whole realm of issues since it's difficult to get the usb spec to share a filesystem with more than one 'user'. So the devices in question usually need to be switched into the proper mode on connection to the host computer. Again think iPods and cameras where you can't interact with the device once connected, and anyway this is totally ancillary to our musical context atm.
In the case of non-storage usb devices they'll either be part of a different class of drivers (like the HUI USB driver class) or require a driver installation if there is no class that fits (or the manufacturer didn't make their device 'class compliant' to any claass). It does seem as if there is some class of USB devices that don't require a driver for midi though. For exampleas my Novation Nocturn and my Akai MPD32 both work without any driver install (though Novation's "automap" software is required for the nocturn to actually do anything useful). But most of the midi devices I see will have a manufacturer provided driver, rather than one enabled by the device's "class".
So to deal with why USB devices are 'bound' to a specific port, you mix in typical driver issues with the fact that ALL devices in a modern x86 compatible machine are addressed through memory mapping. Ie, moving a PCI card to a new slot requires the driver installation because the addressing path changed and the PCI card is 'discovered' anew by the OS...the same applies to the USB controller spec.
Again because the path to address the device changes, that driver will need to be reloaded for each port the device is moved to. Though again for non-class complaint devices the process is closer to normal windows driver installation in the prompts presented to the user. The OS will see the device ID and be able to 'find' any existing drivers already present on the system, but at least in the XP & Vista systems I've used you're still prompted for allowing the driver to install. Some devices (like the novation nocturn I have here) do claim class compliant drivers and only needed the client software (for the 'automap') installed. Others, like my akai mpd32, only require confirmation of the driver loading on that port (class complaint drivers load and no other softwre required).
All of the USB hubs I've used work as a typical networking hub would, providing copper connections through to the host controller, so I'm not sure if there's a class of USB hubs that work as a networking 'switch' would (using a chip to steer each connection individually). So I can't comment on how hubs may complicate things, all of my complications here usually wind up being grounding issues more than anything (with all the midi cables and monitor cables with a 'monitor' based hub, etc).
Finally, I'm fairly sure I understand the virtual SCSI layer complications (with USB storage & other things I use) but I could be slightly wrong on the pathing issues presented when addressing storage devices & other devices. If anyone knows more/better (more betterer?) feel free to correct me.