This issue came up when reviewing MQTT-235 (nolocal) as it affects the bridge use case along with others.
The current setting of the retain flag on PUBLISH and the handling of retained messages on SUBSCRIBE is normally correct when the client really is a subscribing client, it is not correct behavior when the client is going to forward the message on in a bridge or filter use case.
There are two issues here
1. In some case the subscriber does not want to get any messages which are retained at the time of the subscription.
2. If the subscriber is going to re-publish the message it needs to know if the messages was published with the retain flag, rather than that it came from a retained source