USB OTG systems are
host systems! Only thing is they can drop the hosting role and act as normal USB devices when attached to another host. see http://en.wikipedia.org/wiki/USB_On-The-Go
So the talk that "the main problems stem from forcing the BCM2835 into being a USB host when it was designed only to be a client" are baseless, the hardware was
designed to be an USB host (and more). It is just that the hub chip used in the model B blocked the use as USB device, otherwise the PI could have been a full OTG device.
Instead its just that the architecture of the BCM2835's USB hardware is quite basic, and some tasks that in other implementations is done in hardware is done in software on the PI.
The core of that USB software was bought as IP from a third party, and that makes it harder to go look for and fix issues when they are there. And with USB there will always be issues with some devices, as many USB devices tend to deviate from the rules, and therefore need tweaks.