Ok, upgraded to CR1 today and the behaviour is different. The source queue of a bridge will now decrease it's message count every X(ish) number of messages (which is way better than Beta5!).
However if I have a message count of 200 left over from the last confirmation-window-size these will stay in the source queue until another Xish number of messages have been sent across the bridge. Does this matter?
Messages on a bridge get acknowledged at the source every <confirmation-window-size> bytes. So if you just stop sending you may well see unacked messages.
At session close, all the remaining will be flushed and acked, which is what would happen on a clean shutdown.
If the server crashes then they will remain unacked and be resent on reconnect, however this isn't a problem with duplicate detection which will just ignore any previously sent messages.
So it shouldn't be a problem.
Actually, on my list today, I'm adding an ack timeout too. So if messages don't get flushed within a certain timeout they'll get flushed anyway.
Perfect, an ack timeout is exactly what I'm looking for.