I was just testing a change to some basic transmit and receive examples, the packet number sent was part of the packet, this allows the receiver to keep a count on missed packets.
At settings of SF11, Bandwidth 250Khz, with transmitter and receiver 1M apart on my bench, of 10,000 packets sent, 9,991 were received error free, with 9 CRC errors. So no missed packets. Tested with Arduino DUEs.
The library does only clear the IRQ registers once as part of the receive function.