Я настоятельно предпочитаю первый подход.
Но имейте в виду, что изменение типа Person меняет интерфейса. Интерфейс (соглашение о вызовах, ...) Web-сервиса определяется WSDL и схемой XML, которую он включает (или ссылается). Если вы измените какой-либо из них, вы измените интерфейс вашего веб-сервиса.
Если вы посмотрите на это чисто с точки зрения Java, то вы должны рассматривать его так, как если бы класс Person (и любой другой класс, на который он ссылается!) Является частью интерфейса веб-службы!
Хорошо, что вы можете делать совместимые изменения в классе Person (или, если быть более точным: сложный тип / элемент, представленный в классе Person), не нарушая старых клиентов. Добавление необязательного элемента или атрибута является хорошим примером. Новые клиенты могут использовать его, а старые клиенты не узнают об этом, но не сломаются (поскольку сервер не обеспечивает его существование).