“Bang paths” (! is called a “bang"when not used for emphasis) were the first addressing scheme for email, before modern automatic routing was set up. If you wanted to write a mail to the Steve here in Engineering, you just wrote “Steve” in the to: field and the computer sent it to the local account named Steve. But if it was Steve over in the physics department you wrote it to phys!Steve; the computer sent it to the “phys” computer, which sent it in turn to the Steve account. To get Steve in the Art department over at NYU, you wrote NYU!art!Steve- your computer sends it to the NYU gateway computer sends it to the “art” computer sends it to the Steve account. Etc. (“Bang"s were just chosen because they were on the keyboard, not too visually noisy, and not used for a huge lot already).
It became pretty standard jargon, as I understand, to disambiguate when writing to other humans. First phys!Steve vs the Steve right next to you, just like you were taking to the machine, then getting looser (as jargon does) to reference, say, bearded!Steve vs bald!Steve.
So I’m guessing alternate character version tags probably came from that.