I think it has to do with how the Jews in Old Testament times addressed the God of Israel. His name was so sacred, saying it at all was an act of disrespect but people who were not even worthy to say it. I think when they wrote it down, they made it so that it was a word that . . . didn't make sense or couldn't be pronounced, to remind people that they weren't supposed to say His name, but say something else as a substitute that represented it.
"G!d" I think is a bit like that. Methinks people don't want to say "God" directly in case it might be misused or uttered
in vain.
I'm kind of thinking though, if "G!d" is a way of expressing the idea that God's name is sacred, and a way of avoiding "God" then the name "G!d" is sacred, not "God." That's because "G!d" is an expression of one's respect for God's name. A person who says "G!d" does it out of respect.
But that opens the door for God's name to be disrespected even through use of "G!d." Use of "G!d" may represent one's respect for His name, but this could also be done recklessly, foolishly or in vain. Someone with no respect for God could easily use "G!d" disrespectfully.
For me, saying "God" expresses the idea that even if I tried hard to respect God and His name, to keep the idea of Him sacred, I will always fall short of that standard and therefore I claim not to be able to do so.
In that sense, what's the difference? Either way, the moral principle of respecting God, His title and His name can be desecrated. I think I'd be safe not claiming I have honoured Him enough.