The real lesson I learnt is a mechanism has to be put into place so people give back and unfortunately the best mechanism I've found so far, is to make my work commercial and to charge a nominal amount for my work.
Here is what happens if you don't put a mechanism in place. Many projects come along, take the work in incorporate it into their project without a second thought, never giving anything back. Businesses do the same and the individuals who use the work, generally for free, never give it a second thought as well.
One of my early attempts to get something in return was to ask for a link back to my site. Links have value and cost nothing to implement but a little time. That didn't work. Here is a copy from my readme file on the Google Chromium project site. As you can see Google Chrome uses my older work (as does Firefox and many other projects) and I see no traffic in my logs from links, thus I can only assume no links were ever put into place.
In the end I decided it was not possible to simply keep giving to others and not to receive anything in return. So if you ever wondered what happened to my open source work hopefully that might help explain things a little.