It's well-known that, after you've played Margrave once, subsequent Margraves actually benefit your opponent, since you're helping them cycle and sift toward a better three-card hand. The same is true of Legionary, to a lesser extent—once someone already has a three-card hand, making them discard one and draw one is more likely to help them than hurt them. The difference between Legionary and Margrave is that with Legionary, the attack is optional: if you play multiple Legionaries, you don't actually have to reveal the Gold multiple times. Reveal the Gold once for the attack, but don't give your opponent free cycling by revealing it again for additional Legionaries.
I won a game last night where my opponent had a much better engine than I did, and I think the reason I won it was because my opponent was revealing Golds for like three or four Legionary plays a turn. (Well, and because I built up a VP lead before their engine really kicked in.) Without the free sifting I never would have been able to maintain my lead.