It's true that majority of foreign aid does not actually get to the people who need it, and it is also true that a large portion of it is misused or used for personal use of government officials. It is also true that foreign aid is misspent in areas that are not ready for development, a perfect example, is your example sewing machines being sent to places without electricity.
Since this is widely known that very few countries actually become economically dependent when foreign aid is received. It is also known that there are several benefits for sending economic aid to countries.
The first reason is simply not to look bad to the rest of the world. If The United States of America withheld all of it’s economic budget for foreign aid, The United Nations would cry foul play and especially Americans at home.
The second reason is if we pulled economic aid out of countries that wanted it and if they didn’t receive, there would be a long lasting hatred towards The United States of America. This might in turn development a military or a terrorist organization that would have the ultimate goal of attacking The United States of America or it’s allies.
The third reason is noted by the economical theorist Keynes. He believed that, before it ever happened, that do to the high loans imposed on Germany after WWII, it would lead to social disarray, poverty and which would in turn be a breading ground for Socialism. After Socialists would take power it would lead to war and devastation. Keynes was right on this so I would beg to differ that we shouldn’t stop aid in countries that want it.
So what is my solution?…
Instead of giving a check to a government that is need of economical aid, The United States of America (among all countries), should do the aid developing of that country and then government that is in need of economical aid can’t spend it frivolous ways.
For instance, a country asks for $1,000,000 USD to build schools in their underdeveloped country. Instead of writing the check, we would send a team with a budget of $1,000,000 USD and actually build the schools that are needed or partially hire local people to help out. Then there would be less problems, although there would still be problems.
It may seem a like large some of money ($14 Billion USD) but it’s actually not, especially to make sure there is temporary security in undeveloped countries and to keep the image The United States of America wishes to have.
True, there should be private sectors expanding into underdeveloped countries but it is hard to do that if the country is almost in total chaos. Such as the Coca Cola factory in Africa, it was attack repeatedly, bombed, shot at, etc… But private enterprise made it literally bomb proof and production continued.
Also about private sectors. Private sectors are continually focusing on stable countries that have the appearance of being underdeveloped. Such as China, Mexico, Taiwan and among others. They are somewhat secure and yet they are extremely cheap to produce products, then why move your manufacturing plant somewhere else?
Americans should do more building than just giving a check to underdeveloped countries to make sure it gets where it is needed. But its also a small price to pay to have the appearance of doing good.
American policy just needs to shift into the direction I described above, instead completely leaving these countries to fend for themselves and producing more problems which might end up costing us more money, time and things other than money, like lives in the long run.