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