Web サービス アプリケーションのスレッド セーフで静的/共有メソッドを使用しますか? このメソッドは、新しいインスタンスを取得するために頻繁に呼び出されます。
例えば:
 Public Shared GetPerson(ByVal name as String,ByVal surname) as Person
    Dim p As New Person
    p.Name = name
    p.Surname = surname
    p.Addresses = GetAllAddresses(name)
    return p
End Function  
更新 1
投稿されたコードは、質問のために簡単に入力したサンプルです。GetAllAdrresses は別の型の新しいインスタンスを返すため、スレッド セーフになります。
私の懸念は、多くのリクエストが同時に行われた場合、あるリクエストの名前と別のリクエストの姓を持つ人のインスタンスを返さないことです。