I’m a white guy who has spent many years around East Asian people of several nationalities. There is certainly no foolproof way to tell people apart by sight, and I wonder if your friends are really picking out ethnicities by sight alone or if they are basing it on something else, like the part of town you’re in, or overheard accents. But here are some guidelines:
Koreans: I personally think Koreans (both male and female) are the most attractive, on average, of the four ethnicities you listed. It’s hard to describe; something in the jawline and eyes. Body language is more assertive.
Japanese: There is a lot of variation in appearance, more so than other ethnicities. They’re hard to identify. I’ve known Japanese guys you would swear were a Jewish guy from Brooklyn based on appearance, others who looked like American Indians, and others who looked classically or stereotypically Asian. Less assertive body language especially in a group, where being deferential to one another is a high art.
Chinese: Easy - they don’t dress as stylishly or formally as the others, although sometimes the Vietnamese give them a run for it. This is getting less reliable as more and more rich Chinese enter the U.S. as opposed to the past population of poor graduate students. More expressive body language when speaking.
Vietnamese: Tend to be a little darker than the others, and some are sensitive about it. If you see an Asian woman with red lipstick and a layer of pasty makeup, there’s your sign. Tend to either dress down, like the Chinese, or overdo the style with lots of flashy jewelry and high heels (for the ladies) or tailored, European-style suits (for the guys).
These are just very rough guidelines I’ve picked up on over the years. They are certainly not reliable enough for me to go up to some stranger and say, “Hey, you’re Korean, aren’t you!” In fact, I wouldn’t claim to have identified someone’s ethnicity to anyone except my wife, who happens to be Vietnamese and has noticed many of the same things I have.