Opa pessoal.
Só dando um pitaco na discussão, há uma diferença conceitual também sobre as duas abordagens.
Quando criamos um objeto com new, podemos pensar que estamos dizendo em nosso código que algo existe de fato, independente de tem dados ou não.
Assim, ao fazer direto a primeira abordagem, você está dizendo que ao instanciar uma pessoa, automaticamente e obrigatoriamente, a pessoa TEM um endereço real para ele (apesar que os dados do endereço está vazio). Já na segunda abordagem, você está dizendo que ao instanciar uma pessoa, NÃO EXISTE um endereço obrigatoriamente, pois o atributo endereço está nulo.
Então tem sim algo relacionado a negócio nessa sintaxe para optar por uma ou outra abordagem.