Can a DBID be reused before CompAck is recevied in a WriteNoSnp transaction?

The CHI specification (latest version is H at the moment of writing) states in section B2.4.4 that:

A Completer is permitted to reuse a DBID value after it has received all packets required to deallocate a previous transaction that has used the same value.

In transactions were ExpCompAck was asserted, this seemingly implies that the DBID must not be reused until the CompAck is received, since an HN will not deallocate a transaction until it has collected this response from the RN.

Later, in section B2.5.3.2, when describing the identifier field flow for WriteNoSnp transactions, it states that:
After receiving all the write data packets, the Completer can reuse the same DBID value for another transaction.

This contradicts the previous statement, as it allows the HN to reuse the DBID before the CompAck has been sent by the RN. This could lead to a situation were an RN has two WriteNoSnp in-flight, both of which have been granted the same DBID by the HN, and both CompAcks are in-flight. When the HN receives one of the CompAcks, since they are only identified by the DBID, it will not be able to tell to which of the two WriteNoSnp transactions it belongs.

In section B2.5.3.3, when describing the identifier field flow for WriteUnique transactions, the specification does state that the HN has to wait for the CompAck before reusing the DBID:

The Completer must receive all items of write data and the CompAck response before reusing the same DBID value for another transaction.

Does the spec allow an HN to reuse the DBID before the CompAck is received in a WriteNoSnp transaction with ExpCompAck asserted? If so, why is this different from WriteUnique transactions with ExpCompAck asserted?