On a more practical level, charity is a plaster that contributes to the acceptability of domination: far-from-home wars are acceptable because we have NGOs, but the reason we are implicated far-from-home is because we have strategical interests there. Humanitarians orgs object to the means of domination, but they don't object the actual relationship. Another thing is that the individual and free-willing decision means that you will resort to unconsious decision making to apply it or not, since you won't be able individually to always apply it. Think about it: which kind of beggars do you actually (not) give to? mothers with children? drunk? young? proactives/prostrated? And as groups: towards which ones does the public opinion orient NGOs? There are always some patterns, it's always brutal and it always transpires the exact biases we are otherwise trying to fight.
EDIT: For a bit more legibility i should've added that the concept that replaces charity for me is solidarity. And given that moral guidelines as above are never fully applicable, in a situation of charity i try to act with solidarity in mind. In solidarity the difference in power inside some imperfect structure may still be present, but it is not the core. In fact you give not because the recipient has less means, but because you are peers in some other sense. Solidarity could also flow in the opposite direction since it's more than just a transaction.