To summarize the proper noun/common noun usage, I think the easiest way to handle the situation is to capitalize the word god when it is used as a proper name as the name of the god of a monotheistic religion, such as the god of Christianity or Judaism, and not capitalize it when it is used as a common noun:
Christians are supposed to follow what God wants them to do.
Christians are supposed to follow what their god wants them to do.
I think this article from the About.com site about agnosticism and atheism discusses the issue of when to capitalize god quite cogently.
As for usage of the examples in the question, I looked in the Corpus of Contemporary American English and here’s what I found.
God-awful
72 god-awful
71 godawful
28 God-awful
10 Godawful
7 god awful
7 God awful
Overall, the hyphenated uncapitalized and unspaced uncapitalized forms are about equally common. The hyphenated capitalized form was the next most common, but significantly less common, followed by other rare variants.
Oh my God
For the first 1000 results for oh my god, they were divided like this:
710 Oh my God
139 Oh my god
95 oh my God
38 oh my god
10 OH MY GOD
7 Oh My God
1 Oh my GOD
All variations of capitalization are used, but “Oh my God” is the most common by quite a large margin.
Goddamn
For the first 1000 incidences of goddamn, they were divided like this:
770 goddamn
218 Goddamn
38 God damn
27 god damn
18 god-damn
17 God-damn
12 GODDAMN
3 God-Damn
2 God Damn
1 GOD DAMN
183 examples of Goddamn occurred after punctuation—only 35 occurred after a word. Lowercase goddamn is dramatically more common. For the spaced variation, capitalization was more common than not, but for the hyphenated variation, they were equally divided between capitalizing and not. For goddamn, the unspaced variation is much more common than the variants with space and hyphen.
Cannibal god
For the final example, there were, of course, no incidences of cannibal god in the COCA, but I think this works best the same way as Roman, Greek, Norse, and Hindu gods—as a common noun, lowercased.