В официальных документах, действительно, перед названиями городов обычно употребляют сокращение г. или полное слово город. Однако в справочной литературе (см. «Справочник издателя и автора» А. Э. Мильчина, Л. К. Чельцовой) есть такая рекомендация: «Сокращение г. (город), как и полное слово, рекомендуется употреблять ограниченно, главным образом перед названиями городов, образованными от фамилий (г. Киров)». Таким образом, вариант в Лондоне вовсе не ошибочный, даже предпочтительный.
Пожертвовать г. можно и даже желательно, ибо употребление слова город (и сокращения г.) перед названием города – характерная черта канцелярской речи. Слово город и сокращение г. рекомендуется употреблять ограниченно – главным образом перед названиями городов, совпадающими с фамилиями людей: г. Чехов. Но даже при наличии перед названием слова город или сокращения г. название склоняется. Правильно: в столице Польши Варшаве, в столице Польши г. Варшаве.
Верно: Университет Осло.
Употребление слова город (и сокращения г.) перед названием города – характерная черта канцелярской речи, поэтому в «Справочнике издателя и автора» А. Э. Мильчина, Л. К. Чельцовой дана рекомендация употреблять сокращение г. (и полное слово город) ограниченно, преимущественно перед названиями городов, совпадающими с фамилиями людей, напр. г. Пушкин, г. Королев. Однако на практике эта рекомендация редко соблюдается, сокращение г. и полное слово город употребляют перед названиями всех городов.
Правильно: памятная медаль «160 лет обороны города...», памятная медаль к 160-летию обороны города...
Первый вариант по структуре предложения более логичен.
См. в «Письмовнике».
Правильно: ...достопримечательностью Москвы. Зачем здесь слово город?