Передача кода ошибки в ответ на прием "битого" пакета помогает в отладке. Если нет желания, такой ответ можно и не передавать - отсутствие ответа устройства тоже является штатной ошибкой и она обрабатывается.
А что за стандарты на символы, которые действуют на нестандартный протокол? :))) Не понимаю. Другое дело, заказчик может потребовать применить один из стандартныйх протоволов. Но если уж протокол самодельный, Вы вольны использовать там что угодно. Кстати, у меня коды из SLIP.
Режим ASCII может быть удобен только при отладке. Всё остальное время ASCII режим только тормозит работу. Я пользуюсь своей отладочной утилитой, поэтому всё равно, в каком виде передаются данные.