Давайте вернемся к addr:suburb и addr:place с несколько другой стороны.
В чем же принципиальное их отличие от addr:country, addr:city.

Решаем следующую задачу: ходим по домикам и составляем им полные адреса.
Грубо говоря, вот какие возможные элементы у нас в стране:
addr:country
addr:region
addr:district
addr:subdistrict
addr:city
addr:suburb
addr:place
addr:street
addr:housenumber

  1. Если есть ли на домике addr:country - хорошо, иначе, поскольку страна обязательна в адресе, то ишем в полигон какой страны попадает домик.
  2. Аналогично вплоть до addr:city включительно, для отсутствующих обязательных элементов адреса ищем полигоны, в которые попадает домик и извлекаем имя элемента.
  3. addr:suburb - необязательный элемент. Если он не указан на домике либо мы ничего не делаем и быстренько идем дальше, либо, как я понимаю d1g, опять ищем, а не попал ли домик в какой-нибудь place=suburb? В большинстве случаев убеждаемся, что не попал, и потеряв время идем дальше. Если же попал, то включаем его в адрес. Как вариант, смотрим его теги, допустим там будет написано, что именно этот suburb обязателен в адресе всех, кто в него попал.
  4. addr:place - необязательный элемент. Та же ботва, только для поиска возможного кандидата смотрим все возможные place=neighbourhood, place=quarter, place=square, landuse=residential/industrial, да практически все именованные площадные объекты, (wiki: “some another polygonal object”). И делаем это практичечески для любого домика впустую.