That's the problem. The public should define what "public good" means, not rich people. As inefficient as taxes/government is, at least the voters are theoretically in the driver's seat, and get to at least indirectly define public good through elected representatives. With philanthropy, we're simply letting a single wealthy demographic decide "this is public good, trust me bro", and the public can't vote out rich people if they disagree.