So I am looking through the bfgminer driver:
https://github.com/luke-jr/bfgminer/blob/bfgminer/driver-icarus.c I can't see any evidence of error detection or correction on the protocol, no parity, no checksums, no resend.
The protocol just sends 4 bytes of nonce data. Ok maybe "the nonce *is* the checksum" since it will be checked by the host standard c sha256 routines. But all bfgminer does, in this case, is flag HW error and close/reopen the usb port. I would expect it might at least ask for the nonce again in case of transmission error.