I think you pose a good question but generally speaking when someone says "Who are you?" , I either respond with "Why do you want to know?" or I'll tell them my name. I don't feel obligated to define myself to any stranger in a bar or on the street that has the urge to ask me who I am. A friend should know me for who I am already and wouldn't ask either. If the question seems to be prompted because i'm wearing a kilt, i will normally not even acknowledge the kilt that i'm wearing until they say "No, I meant, why are you wearing a kilt?" And that question is a lot more specific and I'm always happy to answer it. Although depending on the person's tone, will depend on my answer.

Asking "Who are you" is more of a "What's your name" question. If it's meant to be "What defines who you are?" type of question, then wow, that's a pretty deep question for a stranger to be asking me.