Thanks Tim, it is very weird, I know.
I've found out how to reproduce this issue, but can't figure out why.
1. Bind "close-buffer" to a hotkey "ALT+Q", and set the keyboard layout as "visual studio".
2. Open workspace file "fake_code.vpw".
2. Open a.c, use "SHIFT+F12" to find references to function "BEntry", reference windows will pop out, then double click on the reference on b.c.
3. Press ALT+Q to close the tab of b.c, and the tab of a.c will duplicated as two.