The ack mechanism is not fine grained enough, intermediate entities maybe need to be identified as such, as well as there is a need for per-message or per-stanza acknowledgement.
Re-reading the XEP, there is a too small reference to replay/resend when messages are not acknowledged, there is no serious such policiy, like the number and frequency of retries.
until a stanza has been affirmed as handled by the receiver, that stanza is the responsibility of the sender (e.g., to resend it or generate an error if it is never affirmed as handled by the receiver).
Additionnally, this XEP introduces a new first-child elements for the stream root element, which are enable, enabled, a, and r. This may not be wishable, since there are only three first-child element: iq, presence, and message. This is just a matter of syntax I believe.
XEP-0184: Message Receipts is a better XEP as the acknowledgement feature is concerned, though again the replay policy is not addressed, and the intertermediate entities are not there neither.