By default, our development boards do not have a power switch on USB host. Maybe what you are doing is a reset to the root hub but not reseting power (I am not the USB expert at GHI)
IT would be a good practice to add one of those USB power controller chips in your end application. They are cheap and give you better protection and control.
I have put many of these USB data loggers in the field and it runs for days. But some times the USB flash drive does not respond.
If I unplug the drive and plug it back in it works.
So in order to simulate a unplug I run this code snippet. And it used to work.
I guess it is resetting the root hub, rather than power cycling the drive but if it can bring back the drive from the stuck state it is good enough for me.
Like suggested to you in the past, the only way to guarantee is by controlling the power on the USB connector. This is how the PC or the a USB hub does it