EF codefirst: Soll ich die Navigationseigenschaften initialisieren?

Ich hatte einige Bücher gesehen (zProgrammierentität Framework-Code zuerst Julia Lerman) definieren ihre Domainklassen (POCO) ohne Initialisierung der Navigationseigenschaften wie:

public class User
{
    public int Id { get; set; }
    public string UserName { get; set; }

    public virtual ICollection<Address> Address { get; set; }
    public virtual License License { get; set; }
}

einige andere Bücher oder Werkzeuge (zEntity Framework-Elektrowerkzeuge) beim Erzeugen von POCOs werden die Navigationseigenschaften der Klasse initialisiert, wie:

public class User
{
    public User()
    {
        this.Addresses = new IList<Address>();
        this.License = new License();
    }
    public int Id { get; set; }
    public string UserName { get; set; }

    public virtual ICollection<Address> Addresses { get; set; }
    public virtual License License { get; set; }
}
F1: Welches ist besser? Warum? Vor-und Nachteile?

Bearbeiten:

public class License
{
    public License()
    {
        this.User = new User();
    }
    public int Id { get; set; }
    public string Key { get; set; }
    public DateTime Expirtion { get; set; }

    public virtual User User { get; set; }
}
F2: Beim zweiten Ansatz würde ein Stapelüberlauf auftreten, wenn die Klasse `License` auch einen Verweis auf die Klasse` User` enthält. Dies bedeutet, dass wir eine Einwegreferenz haben sollten. (?) Wie sollen wir entscheiden, welche der Navigationseigenschaften entfernt werden sollen?