Я думаю, что обычно рекомендуется инициализировать коллекции, прежде всего потому, что это гарантирует разработчику, что ему не нужно ничего инициализировать при использовании, и просто предполагает, что переменная была инициализирована.
public class Store
{
public Store()
{
// Ready to go!
Products = new List<Product>();
}
public string Id {get;set;}
public IList<Product> Products {get;set;}
}
Вы перепрыгиваете через необходимость проверить, была ли инициализирована коллекция, если нет, иначе ... зевать