Is that really a good approach?
I don't think so. It doesn't really matter if you're physically near me, if I cough on something and an hour later you touch that, you're very likely to get infected.
Shouldn't the apps trace a persons movement? Then once a case is encountered ping all the individuals who crossed paths?
The persons movements wouldn't necessarily have to be sent to a central server, they could be stored locally.
Are there other concerns or limitations that I'm missing?
Not if you wash your hands regularly and avoid touching your face.