Assume the Receiver has recieved the PUBREL from the Sender, according to the standard, it would discard the packet id. If the PUBCOMP message does not arrive at the Sender successfully, the Sender would retry to send PUBREL message and when it arrives at the Receiver, the id has been discarded at the first time when PUBREL arrived. Will the sender respond a proper PUBCOMP? This means the receiver still stores the id after gets PUBREL and it is contradictory.
Most articles just tell that the Sender would retry to send but not tell why. Thanks for your kind answer.