Just saw this. Yes, I've wrestled with USB issues and powered hub issues for a while.
The key with Powered hubs is to make sure the powersupply for the hub can actually supply enough current to fully power all the connected devices. MANY MANY hubs, esp 7 port or more, come with powersupplies that won't fully power all the ports, under the assumption that you won't really ever need to.
While that is USUALLY true, it's not necessarily always true.
Whether you put a powered hub in or not, I haven't noticed much of a diff regarding where you plug your devices in (ie a hub or directly into the mobo). In reality, those ports on the mobo effectively +look+ like they're connected to another hub, it's just internal, built onto the mobo.
If you can keep all the devices plugged at all times, you should be good, but if you use devices that will be unplugged (say, light guns, or handheld controllers, etc), you'll likely end up with mapping problems.
The devices do get "numbered" and I believe they are initially numbered based on the vendorid/deviceid, but if you hot plug devices, all that can go out the window pretty quick.
That's why I wrote the ControllerRemap utility, it allows you to setup a mame cfg file that maps directly to device IDs or names, not to device numbers. So no matter where a particular controller ends up mapped, it'll still "mean" the same thing to Mame.