Many of the posters on this subject have good and generous intentions and undoubtedly think that being "generous" is a good thing.
Allow me to turn the coin over and show the other side.
When a "gringo", expat or tourist pays too much for anything in a developing country it has consequences. It usually results in inflation sometimes on a macro level but mostly on a micro or local level.
When a town or province becomes a tourist destination or a desirable location for Expats to live and they willingly pay more for nearly everything, shop keepers, landlords and restaurants see they can charge more. This means the locals have a hard time competing in that inflationary economy.
Take the example of Ecuador: The old Colonial city of Cuenca where expats have moved to in droves. Instead of paying at least close to the local price for rents they have been actually bidding UP prices. Paying much more than a local would have paid for the same apartment.
Landlords take about 30 seconds then to catch on to this trend and raise prices leaving most Ecuadorians out of the housing market. This is an example of micro inflation and it hurts the locals.
At restaurants the same is true, local places quickly figure out that they can raise prices because the tourists are willing to pay so much more...this drives food costs up and the locals away from places they used to eat at. Meanwhile your server is probably a member of the family that OWNS the restaurant and all those big tips just go into the profit. Even if the server is an employee the owner is more than likely taking those tips or most of them for him/her self. This is ESPECIALLY true if he sees a big tip being given. If an owner sees that the servers are getting bigger and bigger tips they have been know to CUT the servers wages.
The upshot is that your generosity is likely to backfire and have exactly the opposite effect you intended.
Negotiating is EXPECTED. You are not cheating them. They will never sell you something for less than a profitable amount...period. So if they agree to your price you can be sure they are happy with it. Now they may not be happy that you are savvy enough to negotiate well or at all...would they prefer you to just accept the outrageous first price they throw out? Of course they would be. Do they respect you or like you more because of it. No they do not.
And the other unintended consequence of that generosity is that all of the expats and tourists that follow all of you very well meaning and generous folks end up paying more and more for everything...resulting in an ever widening circle of inflation that truly hurts the locals.
I have watched this phenomenon play out many many times in more than one country I have lived in. But the one thing that usually never increases are the locals wages. They stay at the local level.
You cant change this but you can act in ways that don't add to their problems or make things more expensive. Paying as close to the local price as possible is really what is best for all concerned.