You are assuming most people pay as much attention as you do. Most people donate to the charity they see on TV the most. They don't give a shit about said charity's efficiency, they just want to say, "Oh, I got this pretty pink ribbon, see how great I am!"
The government and charities we have now, are a reflection of our current culture. Culture is the collective operating system. Changing governments doesn't change much. We need to go one level deeper and change the underlying cultural operating system from which they spring. And how do we do that? Gandhi knew
the answer.
What would change about our culture in your ideal world that would make charities better or more efficient?
EDIT: And what about our culture would change to make those who wouldn't otherwise give to charities suddenly decide to? Or what would change that would convince those donators to give to the now thousands of additional charities we have for every single basic human need that was in some part provided for previously?