В этом предложении при существительном Петербург имеется два приложения и одно согласованное определение, все вместе образующие ряд. Элементы этого ряда можно перечислить через запятую, а можно какую-то часть ряда отделить более сильным знаком тире, подчеркнув его самостоятельность:
...Петербурга, его родного города, любимого и жестокого, прототипа всех будущих городов;
...Петербурга — его родного города, любимого и жестокого, прототипа всех будущих городов;
...Петербурга, его родного города — любимого и жестокого, прототипа всех будущих городов (определение любимого и жестокого относится к родному городу);
...Петербурга, его родного города, — любимого и жестокого, прототипа всех будущих городов (определение любимого и жестокого относится к Петербургу).
Если поставить тире перед последним приложением, то сочетание согласованных определений нужно закрыть запятой:
...Петербурга, его родного города, любимого и жестокого, — прототипа всех будущих городов.
Верно: Университет Осло.
См. в «Письмовнике».
Названия такого типа рекомендуется склонять и без родового слова город, и в сочетании с ним (см. «Письмовник»).
Правильно: памятная медаль «160 лет обороны города...», памятная медаль к 160-летию обороны города...
Первый вариант по структуре предложения более логичен.
Разные справочники дают разные рекомендации (подробнее см. в "Письмовнике"). На практике названия городов из двух слов, если они следуют после родового слова город, чаще не склоняют.