One Important thing is a hub's ports are disabled until the port is reset. When a device is attached, its port is disabled, so no traffic flows to the device. When the port/device is reset, the reset not only tells the device to assume the default address, but the hub port to become enabled.
The host has to arrange to only ever have one device at the default address on an enabled port at one time. All traffic is broadcast to all devices, so if more than one device ever becomes enabled on an enabled port at the default address, everything falls apart. I've had it happen occasionally, enumeration may become impossible at that point. My implementation used a mutex lock and a queue to make sure only one device was at address zero at once.
If you have mutiple busses, ie each bus has a separate host controller, each bus can have its own independent device zero. Traffic is not broadcast across busses, only to all devices on a bus.