I have a small uC device that I made that uses an FTDI
USB->TTL
converter. I wish USB was as straight-forward as you describe. I'm
currently running into problems when transferring, very quickly, some
data from the uC to the PC. The problems are related to overrunning the
PC, where the PC isn't scheduling reads from the device fast enough to
prevent drops. At least interrupt-based I/O can "demand" attention from
the cpu at any time, where USB is at the mercy of being scheduled.
I do that at 921kbps and had no issues.