My son has a cool little bag tag that we got at some event, that attaches to the zipper in his backpack. We put it on the inside.
On the otherhand, I firmly agree with the family codeword (if there was an emergency and the plan changed and someone had to pick him up). I teach my son to say hi to people who say hi to him first (like a store clerk), but that it is ok to not say anything else especially if we're not with him, and never go over to speak to someone, if you don't really remember who they are. I tell him that he'd not get in trouble if he forgets who one of my friends is and doesn't speak, because I'd rather him not talk to strangers. Truth is, kids area always yelling each other's names when playing, or saying bye, or whatever.....it's very easy to catch someone's first name. We don't teach fear though; just wisdom.
We had the opportunity to see that he DOES listen to us! I didn't want him talking to just any adult if he ever got separated from us, so I taught him that if he can't see me, to find a cash register and tell the "worker" that you need help. We were at an event 2 weeks ago at a library where we got separated (fast moving crowd, suddenly, and I had a stroller and couldn't manuever fast enough, and he couldn't hear me call him)....He saw that I wasn't with him, and turned around and went straight to the circulation desk and told the worker "My name is__, my mommy's name is__, and I can't find my mommy, ok?" He was very calm and did exactly as I'd taught him. Three year olds CAN listen!!! So good to know!