The last bullet in section 4.3.3 at line 3073 seems incorrect, or perhaps just misleading. This text is in Appendix B as well.
• MUST NOT apply Publication expiry until after PUBCOMP has been sent [MQTT-4.3.3-13].
I believe that what this statement is attempting to say is that the receiver of a QoS 2 message must complete the QoS 2 flow for a message even if it expires the message. It is expected that the receiver of the message starts processing the message when it sends the PUBREC and it is quite possible that it will expire the message before receiving a PUBCOMP.. However despite this it must send a PUBCOMP in response to a PUBREL and must keep the packetID reserved until this point.