The hardware/software issue only regards how switching to host mode is done, but the actual data transfer is separate, and is handled the same either way. If you're seeing a difference, I'd guess the cable you were using with software-switching is likely to blame, not the switching method itself.