Perhaps you've noticed I say "OMG" a lot. In my head I mostly pronounce it "Oh em gee" or "Ohmg" (like the meditative "om," but with a g-sound at the end). It's a writing thing: I don't say "Oh my god" out loud very often, and when I do I often say "Oh em gee" to show I am aware I am not 16.
I don't allow my kids to say "Oh my god," and it was a little tricky to explain to them WHY. I had to give it some thought.
If we belonged to a religion that had as one of its commandments that we shouldn't use our deity's name frivolously, then I could use that as my reason: it breaks a commandment, it's a sin, so we don't do it. But we DON'T belong to such a religion, so for us it's not commandment-breaking or sinning.
If the expression were "Oh your god," I suppose we'd want to be careful not to say it around people who had a god, in case they winced at someone else breaking the rules of their religion. I wouldn't order pork sausage while out to lunch with someone I knew belonged to a no-pig-eating religion, either, because I wouldn't want to make them wince---even though, of course, there'd be nothing at all wrong with me eating pig, since I don't belong to that religion.
But no, the expression is "Oh my god," so it shouldn't offend anyone else: it's totally clear I'm not talking about their god. At most, they might think, "My goodness, she certainly has a lenient god!"
It's like saying "Oh my stars!" even though we're not referring to any particular stars, and even though we don't personally own any stars, and even though there might be a religion that reveres the stars and doesn't want to speak lightly of them in colloquial expressions. We don't belong to that religion, so we're allowed to say "Oh my stars" without sinning or breaking rules or being disrespectful to someone else's stars. If I were friends with a star-worshiper, I'd avoid the expression, because why create tension when it would be just as easy to substitute the harmless "Oh my god" instead?
Or it's like "Oh my sainted aunt!" You don't have to have an aunt to use that expression, let alone one who's been officially sainted. If you DID have an aunt who was a saint, using the expression wouldn't be saying anything disrespectful about her---but it's possible you'd choose not to say it anyway, just to avoid confusion. (Your sainted aunt: "What?" You: "Oh, no, nothing, Auntie!")
I couldn't use "because it's a swear," either. A swear is a "bad word." A swear is a word like "sh*t" or "f*ck": you can't really say those words in a context where they're not bad words. But "oh" and "my" and "god" are neutral words, and their meaning is derived from context. If you're not using the name of your god frivolously, you're not swearing. In fact, even if you ARE using the name of your god frivolously AND that's against your religion's rules, you're STILL not swearing: you're sinning and/or and you're breaking a commandment, but you're not using bad words. One of the funniest things I've read lately is that Lora's son refers to Jesus as "that guy with a bad word for a name."
So if it's not a religious rule they're breaking, and it's not a swear, why am I telling the kids they can't say it? It's because I think they're too young to use good judgment with that phrase, or to give an explanation for their usage of it if an explanation is demanded of them. Obviously no one should be monitoring someone else's religious compliance, especially if the monitor doesn't even know the monitoree's religious situation, but we all know of people who DO feel the urge to do volunteer police work, and I don't want my children confronted by such people if I can help them avoid it.
I don't let the kids say "crap," either: "crap" isn't a swear, but it's in the Careful Zone. I say "crap" comfortably as a sassy sort of word, but I wouldn't say it in front of my child's teacher, or in front of my grandparents, or in a job interview---unless I was using it deliberately and with some thought behind it and I intended the impact I'd know it would have.
I don't think my kids have that kind of judgment yet. In fact, I am pretty goddamned sure they don't, so what I've told them is that "Oh my god" and "crap" is language they can choose to use or not use when they're older and can weigh the impact of it. Until then, it's "Oh, man!" and "Dang it!"