Some of that stuff is a result of legacy issues where Microsoft tried to handle badly made USB devices as well as possible. For example the reason Windows used to try and install the device again every time you switched ports was because USB device vendors really often didn't use a unique ID so identifying the device was tricky. Coupled with the multi-year release cycle that Windows had and Microsoft's mission to keep backward compatibility meant we had to put up with a lot of this stuff for a long time.