(this is not criticism of effective altruism, only one analogy that's used as an argument)
Peter Singer writes in the The Drowning Child and the Expanding Circle:
To challenge my students to think about the ethics of what we owe to people in need, I ask them to imagine that their route to the university takes them past a shallow pond. One morning, I say to them, you notice a child has fallen in and appears to be drowning. To wade in and pull the child out would be easy but it will mean that you get your clothes wet and muddy, and by the time you go home and change you will have missed your first class.
I then ask the students: do you have any obligation to rescue the child? Unanimously, the students say they do. The importance of saving a child so far outweighs the cost of getting one’s clothes muddy and missing a class, that they refuse to consider it any kind of excuse for not saving the child. Does it make a difference, I ask, that there are other people walking past the pond who would equally be able to rescue the child but are not doing so? No, the students reply, the fact that others are not doing what they ought to do is no reason why I should not do what I ought to do.
Once we are all clear about our obligations to rescue the drowning child in front of us, I ask: would it make any difference if the child were far away, in another country perhaps, but similarly in danger of death, and equally within your means to save, at no great cost – and absolutely no danger – to yourself? Virtually all agree that distance and nationality make no moral difference to the situation. I then point out that we are all in that situation of the person passing the shallow pond: we can all save lives of people, both children and adults, who would otherwise die, and we can do so at a very small cost to us: the cost of a new CD, a shirt or a night out at a restaurant or concert, can mean the difference between life and death to more than one person somewhere in the world – and overseas aid agencies like Oxfam overcome the problem of acting at a distance.
Singer's analogy is incomplete because it doesn't capture the essence of the drowning child scenario. The following does.
You're walking somewhere, and you see a child drowning in a shallow pond. You naturally decide that you ought to save this child despite your other obligations, so you rush in, get your clothes wet and muddy, and rescue the child. You get out of the pond, but you see that there's another pond right next to this one - and this one also has a child drowning. You rush into the second pond and save that child. Upon coming out, you perceive a third pond with ANOTHER child drowning. You say to yourself "gee, there sure are a lot of children drowning today", and you dutifully rush into the third pond, and save a child. This process repeats. It's 3 AM now, and you're hungry and tired, but every time you rescue a child from a pond, you see another pond and another child. You continue throughout the night, well into the second day. You haven't had a minute of break. It's noon on the following day. You lose consciousness because you're so tired and overworked. You wake up and the child that you were rushing to save next is now dead.
You spend your second day helping children out of ponds, but at one point you stop and you go get food, as you haven't eaten in two days. You eat quickly and you run back to the last pond. That child is now also dead. But you see another child in another pond, so you rush in once again. You drop out of exhaustion somewhere around midnight. You wake up in an hour or two, see that this child too is now dead, but there's another one nearby. As before, you rush in, help the child, and repeat the process.
You see the picture. Long story short: you start helping fewer and fewer children out of ponds, and stabilize at some sustainable daily range of saved children. Maybe you go to work, earn your wages, go home, eat, get changed, and spend an hour or two a day in ponds, saving children, and letting other children die. Maybe you stop saving children altogether and start wondering why the hell are there so many children in ponds anyway. Or maybe you invent a surveying technology that can estimate how many drowning children there are on a given piece of land, or you try to estimate how much it would cost to drain all these ponds so that children can stop falling into them, or you raise awareness in town, and try to explain to others that there are children drowning in some ponds nearby.
That's my entire criticism of this analogy - it's sometimes presented like "if you would do this THEN IT FOLLOWS that you should do that", but it does not follow, because of context. There's not one pond, but millions of ponds, and rushing in is an excellent strategy only for up to a thousand ponds. Everything above that (and probably everything above 100) is reason enough to stop, think and try to build a better system.