Я уже конечно давно не работал с CDC, но по-моему скорей всего ТС просто не разобрался со своим стеком.
Когда я работал с CDC (на стеке LPC и его CPU), никаких таких потерь не было. Вообще.
API для юзера там позволяло отправлять и большие блоки (они разбивались внутри стека).
Уведомление о завершении передачи от стека (и подкачка новых данных) там было сделано через callback-вызовы.
Цитата(Golikov A. @ May 19 2014, 21:30)

не совсем верно, это при передачи через контрольную точку 64 байта пакеты. Но вроде виртуальный ком порт еще 2 интерапт точки делает, а там размер буфера 1024 бита вроде как...
У меня сейчас в комп воткнуты два разных (с разными дровами) USB-COM. В обоих имеется только по два bulk-эндпоинта. Никаких интеррапт.
Не уверен, но возможно FS позволяет несколько транзакций с одной bulk-точкой за один 1мс-фрейм. Надо читать описание USB.
PS: Нет, сорри - в одном из CDC-устройств имеется одна интеррапт-точка. Но размер её == 2байта с интервалом 1мс. А значит - в ней только какие-то статусы передаются.