MQTT5必须在重连时才能重传消息吗?EMQX 和 MQTTX 是怎么实现的呢?

MQTT V5 协议文档中有提到,只有在客户端断线重连的情况下,服务器和客户端才能重发 PUBLISH 和 PUBREL,如下:

When a Client reconnects with Clean Start set to 0 and a session is present, both the Client and Server MUST resend any unacknowledged PUBLISH packets (where QoS > 0) and PUBREL packets using their original Packet Identifiers. This is the only circumstance where a Client or Server is REQUIRED to resend messages. Clients and Servers MUST NOT resend messages at any other time [MQTT-4.4.0-1].

这是否意味着,例如服务器如果想要重发 QoS 1 消息,不能直接发送 DUP = 1 的 PUBLISH 数据包,而是只能断开网络连接?随后还必须等待客户端发送 CONNECT,重连后才能重发消息?

查询了 github 上相关的讨论,发现了这个回答,表示 EMQX 有ACK超时机制,可以重传ACK超时的包。

https://github.com/emqx/MQTTX/issues/599

请问是否是这个情况呢?这样的设计是否属于违背了规范呢?还有,既然规范要求不能在非重连的情况下重传,那怎么重传 QoS 1 的包才算合理呢?