Я предпочитаю использовать отдельные поля, потому что это дает структурированную информацию, в то время как одно поле дает адрес, но с неизвестной структурой. Очевидным преимуществом является то, что одно поле позволяет вводить адреса, не соответствующие ожидаемому формату, например, внешние адреса и почтовые ящики.
Размышляя над вашим вопросом, я получил следующую идею - гибридное решение. Существует одно поле ввода, но пока пользователь вводит данные, они анализируются и разделяются, и этот результат анализа показывается пользователю - тонкое выделение с именем поля рядом с ним, что-то похожее на подсказку. Вы можете иметь разные форматы для разных типов адресов и стран. Анализ может быть основан на общей структуре адреса, а также на названии штатов, стран или формате почтовых индексов. Регулярные выражения могут сделать это, но можно также рассмотреть пользовательский формат описания. Может быть, XSD, XML или аналогичные языки описания также могут быть использованы (ab).
Пользователь должен иметь возможность изменить формат, выбрав его из списка через контекстное меню или что-то подобное, изменить отдельные поля, которые не были правильно проанализированы, или даже полностью пометить весь адрес. Это стало бы довольно сложным элементом управления, и я не уверен, насколько хорошо пользователь, увидев это впервые, сможет справиться с этим элементом управления. Я мог бы, например, представить, что у пользователя будет соблазн немедленно изменить неправильно обнаруженные поля и не ждать, пока он закончит вводить шансы для правильного анализа адреса, лучше, чем после первой строки.