A "no local" consumer (durable subscriptions included) doesn't receive message sent on its connection, as long as there is a connection. The moment a durable subscription's associated consumer is closed, the durable subscription ceases to have a logical association with any connection, so it's free to accept message from any producers on any connection.
When a new "no local" consumer for that durable subscription is created, then that subscription must not accept messages from producers sharing the connection with the new consumer. And so on. IMHO.
Well, if that is true you will have the some strange effects.
Connection conn1 sends message m1
conn1 creates consumer with no local = true.
conn1 sends message m2
consumer closes without receiving anything
conn1 sends message m3
conn1 creates consumer with no local = false
consumer receives m1
consumer receivers m3
My opinion is that no local should only apply to the *consumer* of the subscription (the subscriber), not the subscription itself, which is the way it currently is and has been for some time, and passes TCK.
I just to wanted to clarify since the spec is a bit fuzzy about this.