The game is fairly balanced, its just that the current successful strategies are very abusive and not to appealing to the majority of rts fans.
I took a look at the statistics of the top 200 ladder player from each faction.
Soviets:
Number of games: 30429
Win ratio: 0.644943967925
Germans:
Number of games: 31035
Win ratio: 0.699500563879
Arguably "fairly" balanced, but with a clear advantage to the Germans. I agree with several others in this thread about the lack of flexibility for the Soviet faction. This makes the Soviets less fun to play than they should be.
Stats were generated using the following Python code, put it in ladder-stats.py and run it with
python ladder-stats.py "http://www.coh2.org/ladders/index/1/1/0"(for Soviets and Germans, respectively).
python ladder-stats.py "http://www.coh2.org/ladders/index/0/1/0"
Code
from BeautifulSoup import BeautifulSoup
import urllib2, sys
url = sys.argv[1]
content = urllib2.urlopen(url).read()
soup = BeautifulSoup(content)
totalWins = 0
totalLosses = 0
for page in range(1, 10):
for ul in soup.findAll('ul', attrs={'class':('ladders items page page-' + str(page))}):
for wins in ul.findAll('div', attrs={'class':'wins'}):
totalWins += int(wins.text)
for losses in ul.findAll('div', attrs={'class':'losses'}):
totalLosses += int(losses.text)
print("Number of games: " + str(totalLosses + totalWins))
print("Win ratio: " + str(float(totalWins)/float(totalLosses + totalWins)))