По моему, здесь вы ошибаетесь. Во первых, обычно на CAN сидят несколько узлов. И если один не выдал ACK по какой либо причине и не выдал флага ошибки, то это совсем не означает что ACK не выдаст другой узел. Во вторых, в Reference manual я не смог найти, что при переполнении FIFO флаг ACK не выставляется. Есть два режима, когда в конце очереди всегда самое новое сообщение (затирает предыдущее), либо очередь блокируется и новые сообщения в нее не попадают.
Поправьте, если не прав.