the problem with charities is that they pick and choose who benefits from their “benevolence” and people pick and choose whether they give to them. charities can have agendas, bigotries, and other arbitrary restrictions on their charity.
social programs are taxpayer-funded and for everyone, and discriminating as to who receives benefits (as charities often do) is forbidden.