Q:

How to use the words "друг" and "подруга" properly?  Как правильно описать отношения по-русски? 

This question is related How to address a female friend, although somewhat different in its focus. 
As far as I understand, the following is true:

If the speaker is female, then "подруга" means "friend" and "друг" means "boyfriend". 
If the speaker is male, then "друг" means "friend" and "подруга" means "girlfriend".  

1.  Is the above correct? 
From the answers to the other question, it seems like the only way to refer to friends of the opposite gender is via their name.  
2.  So is there no way to talk about the relationship in the third person, i.e. no translation of "So-and-so [of the opposite gender of the speaker] is my friend"? 
The above is particularly important to me because I don't want to offend my friends by accidentally telling other people incorrectly/falsely that we are in a romantic relationship. 
3.  How do people refer to romantic partners of the same gender in Russian?  Or is non-heterosexuality sufficiently taboo in all Russian-speaking societies that people never acknowledge such relationships or develop words to refer to them? 
4.  How to translate, without ambiguity, in all possible cases, "platonic friend" and "romantic partner" into Russian?  Как правильно описать все отношения по-русски? 
I don't really expect a satisfying answer to this question, since the exact same problem exists in German and I have never heard a satisfying answer to that question either.  I suppose it is also worth noting that in English some women refer to their platonic female friends as "girlfriend", although I imagine this usage has declined with the normalization of non-heterosexual relationships in English-speaking countries, or at least in the United States. 

A:

Usually:  

Male friend = друг 
Female friend = подруга
(My) Boyfriend = (мой) парень 
(My) Girlfriend = (моя) девушка

No
He is my friend = он мой друг
She is my friend = она моя подруга
It doesn't matter if the relationship is heterosexual or homosexual, it is always:
Boyfriend = парень
Girlfriend = девушка 
platonic friend = друг
if a girl is going to unambiguously say that the boy is just a platonic friend, not a boyfriend, she can say "он мне просто друг" (which can sometimes be used for friendzoned)
The most unambiguous way to say "boyfriend/ girlfriend" is "мой парень/моя девушка"

A:

Is the above correct? 

Not exactly.  I know lots of people who only use "друг" or "подруга" meaning friend (no romance). 
But I also know some people that use "мой парень/моя девушка" for romance, but also use "друг/подруга" for romance if it is a free relationship, or if it's cheating, or to make it "not obvious" (Logic isn't available for everyone).  These people usually don't believe in friendship between man and woman, and generally, they appear not to be smart. 

So is there no way to talk about the relationship in the third person, i.e. no translation of "So-and-so [of the opposite gender of the speaker] is my friend"? 

Usually, you can say "Аня — моя подруга" or "Вася — мой друг".  Someone might ask you "То есть вы встречаетесь?"  implying romance, to which you should reply "нет, мы просто друзья".  There are people who will still think that there is some romance between you, but it will be their problems, not yours.  If one sees no possibility for friendship between people of different sex... Well, I think they should be seeing a shrink. 

How do people refer to romantic partners of the same gender in Russian?  Or is non-heterosexuality sufficiently taboo in all Russian-speaking societies that people never acknowledge such relationships or develop words to refer to them? 

It's not a taboo, but usually you wouldn't tell everyone that you are not straight.  Though, if you are close enough (or don't care, or want to shock), then it will be "мой парень" or "моя девушка". 
A bit more about discretion on this topic: elder people (50+) are usually less tolerant than young ones.  Also there is more tolerance for women (with any gender-related deviations) than for men. 

How to translate, without ambiguity, in all possible cases, "platonic friend" and "romantic partner" into Russian?  Как правильно описать все отношения по-русски? 

Any word can be ambiguous.  Even if you say that Smith is your business partner, someone could still think that you are sleeping with him (or her) if Smith isn't of same gender as you are.  But that's again their problems, not yours.