The Data_transfer will split the data flow in two at runtime. In that way it might help indeed.
If I understand you right, select distinct from a join seems to be pushed down properly. Then the culprit is the split after. Check my blog post on full SQL-pushdown again for similar cases and workaround.