So the Node-RED mqtt node has made qos 1 and 2 redundant by having a connection check around publish. The underlying mqtt client lib already manages messages correctly based on qos. In fact the mqtt client can be configured with a storage policy. The default policy is es6-map.
If Node-RED is running in a constrained environment where qos>0 can not be supported. Then I would expect qos to be set to 0 in that environment.