When you say "warm' start (reset)" do you mean pressing the reset button, or using the 'reset' command from linux.
I can totally see how the latter would be unreliable. Since the reset pulse is only sent when the voltage goes low -> high, or if the reset button is pressed, that means that using the linux reset doesn't reset the PHYs (neither the ethernet one, nor the usb ones). And if the PHY was busy doing something, it might get very confused ...
Having a reset line controllable from the ARM would have been better, but unfortunately there is none in the current board ...