iOS 6.1 / iPod Touch 5th gen.
If a peripheral is paired with an iOS device, disconnects, and subsequently loses its copy of the encryption keys (for whatever reason), I've observed that after connecting to the peripheral again, the iOS device tries to enable encryption. If this fails, it retries once more and then gives up. This cannot be recovered except by deleting the pairing manually in Settings/Bluetooth on the iOS device.
If CoreBT receives LL_REJECT_IND with error code 0x6, indicating missing keys, I would have thought it should then decide to behave as if it were not previously paired. That is, automatically drop or ignore the pairing information for the (e.g.) random static address of the peripheral. The application using Core BT will then discover services, read a characteristic as needed, and follow the usual pairing procedure. The user will see a new pairing dialog, but at least it is cleanly recoverable.
Instead, Core BT returns a connection timeout error: