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