Отличие толстого клиента от всяких хлюпиков в том, что у толстого есть целое состояние, которое он бережно хранит. Как только Вы понимаете это, ответ становится очевидным.
Есть состояние, не важно - это или номере хранилище, или компонент верхнего уровня. Дальше Вы делаете все действия, которые нужно и данные от пользователя собираете в это состояние, а потом, когда заканчиваете, все вместе отправляется на сервер.
С учётом сохранения состояния, дальше можно само представление организовать как угодно, или рендерить разные элементы на одном урле, или сделать роутинг/суброутинг.
P.S. Если пример с городами реальный, то можно вообще взять API карт от Google или Yandex, клиент вводит город и адрес, ему показывается точка на карте, дальше под этой точке получаются полные данные о месте с кучей дополнительной информации, потом может пригодится, хотя и сами данные почтовые сохраняем, которые нужно. В таком случае вообще не нужно будет пользоваться возможностями SPA.