Since non durable subscriptions only live for the life-time of the consumer the it's struck me that we don't actually need to send any acks from the client to the server as messages are acknowledged for non durable subs.
Basically I think we can acknowledge them before they are sent from server to client.
This is because there's no case where messages will be redelivered from the server to the non durable sub, therefore no need for acks.
On session recovery and session rollback messages are redelivered locally (i.e. they are already on the client) so no need for the server to redeliver.
This also means we don't need to maintain a delivery list in the server consumer endpoint in this case, and the server consumer endpoint can return a done delivery every time.
Can anyone see a flaw in this plan?