Did you ever do any reverse engineering for your code?
Yup. I was doing it today. :) One of the best things about .NET is being able to decompile assemblies and learn how they work.
Concerning ethics, it's wrong to take something as a whole and claim it as your own. It's not wrong to investigate and learn from something, and it's not wrong to adapt what you learn in your own code.
As far as the artist mentality goes, I've seen both my libraries and raw code posted elsewhere online by others (programming style is very individual, and at a certain point you can identify your own code). It makes me happy that people found it useful enough to use it. I'm less happy when they say "I wrote this" when they clearly didn't, but that happens when you post stuff to the public domain.