My sister and I shared clothes like crazy growing up. We did with all of our friends, until one day, we noticed our closets were practically empty. We had to go around and start asking people for our clothes back. One girl had a huge bag full of our clothes, and she was mad we wanted them back.
After that, I had a rule for no clothes sharing. Even in college we didn't share clothes unless it was for some big special event or something. Though I still had a roommate that took my clothes and even hid them from me b/c she didn't want to return them.
I would really just sit down and nicely... yet firmly tell her you aren't comfortable with sharing clothes... no need to get into specifics, and if she can please return the ones she has. If she presses the issue, you can just tell her it's one less thing to worry about when you are trying to keep your closet organized and your clothes in good condition and you don't like how the smoke smell is so hard to get out. I would tell her though, that when you are ready to donate something, she will be the lucky recipient.
I shop at Goodwill too, but I still think sharing shoes and certain things are gross too.
Really, her behavior is pretty juvenile and I do not think you are selfish at all. If she gets offended and it ruins your friendship, then she isn't a very good friend after all.