Если вы только когда-либо добавляете один элемент в список, тогда да есть некоторые маргинальные накладные расходы на наличие списка, но, что интересно, это только влияетвремя выполнения - фактическая сериализация списка с одним элементом по сравнению с прямым (не относящимся к списку) под-свойством идентична.Так;, если вы абсолютно уверены, , что у вас есть (максимум) один элемент, следующие будут взаимозаменяемыми:
[ProtoMember(42)]
public List<Foo> Foos {get;} = new List<Foo>(); // has at most one item
и
[ProtoMember(42)]
public Foo Foo {get;set;}