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