Разница между "Genosse" и "Kamerad" похожа на разницу между "врачом" и "доктором". Одно из слов - иностранное и появилось намного позже другого. Вследствие чего оно имеет более формальный характер и узкое значение, потому что большинство обывателей не понимают его смысл.
По сути, "Kamerad" - это "Kameragenosse" (сокамерник :). Т.е. один вид из большого числа других *genossen.