Been doing some more reading regarding this whole USB power thing.
The way I see it is such:
USB ports are "normally" powered up but limited to 100mA.
The USB spec states that when a peripheral is detected on a port, the host limits the current to 100mA
initially for several reasons. (The USB specs is a lengthy document so if you want the "simple" version
as regards power see the first page of this pdf
http://www.ti.com/lit/an/slyt118/slyt118.pdf ).
The host then "interrogates" the peripheral in a process called enumeration where one of the things that the peripheral can ask for is extra current up to 500mA.
The host then sets that port to 500mA and away we go.
Once the peripheral is disconnected, the host detects this and the port reverts back to 100mA max.
Now the question I have is:
Is the driver that deals with the enumeration specially written for the Pi and denies the extra current?
Or does it allow it, so the peripheral now expects to get it.
Under normal conditions, the host will drive a power control circuit which ups the limit to 500mA
but since this is not physically implemented on the Pi, exactly what happens to this control line/s and where
(if at all) is it/they mapped to?
Even if the host (the Pi) physically permitted 500mA, then this would still be limited by the 140mA polyfuses.
So either way, the USB ports on the Pi are not 100% USB compatible and thus do not conform to the
USB specs.