PROTON-2029: tweaks #33 to apply the state but only prevent generating the frame, add clarifying doc comment.

Retains existing order independence (between output processing) to avoid unlikely but possible breakage of existing uses.
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/engine/Delivery.java b/proton-j/src/main/java/org/apache/qpid/proton/engine/Delivery.java
index b997309..5bdd364 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/engine/Delivery.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/engine/Delivery.java
@@ -42,6 +42,8 @@
     /**
      * updates the state of the delivery
      *
+     * The new state may have no on-the-wire effect, if delivery settlement was already communicated to/from the peer.
+     *
      * @param state the new delivery state
      */
     public void disposition(DeliveryState state);
diff --git a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/DeliveryImpl.java b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/DeliveryImpl.java
index 7312bef..2928d37 100644
--- a/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/DeliveryImpl.java
+++ b/proton-j/src/main/java/org/apache/qpid/proton/engine/impl/DeliveryImpl.java
@@ -132,12 +132,8 @@
     @Override
     public void disposition(final DeliveryState state)
     {
-        if (_settled) {
-            return;
-        }
-
         _deliveryState = state;
-        if(!_remoteSettled)
+        if(!_remoteSettled && !_settled)
         {
             addToTransportWorkList();
         }