Não é uma pergunta irracional. Não são casos em que os métodos que podem causar problemas thread-segurança em combinação com outros métodos são seguros se eles são o único método chamado.
No entanto, isso claramente não é o caso, quando você considera o código mostrado no refletor:
public void Add(T item)
{
if (this._size == this._items.Length)
{
this.EnsureCapacity(this._size + 1);
}
this._items[this._size++] = item;
this._version++;
}
Mesmo que EnsureCapacity
fosse threadsafe em si (e certamente não é), o código acima claramente não será threadsafe, considerando a possibilidade de chamadas simultâneas para o operador de incremento causando erros de gravação.
Bloqueie, use ConcurrentList, ou talvez use uma fila sem bloqueio como o local onde vários threads gravam e leem a partir dele - seja diretamente ou preenchendo uma lista com ele - depois de terem feito seu trabalho (estou assumindo que várias gravações simultâneas seguidas por leitura de thread único é o seu padrão aqui, a julgar pela sua pergunta, caso contrário, não consigo ver como a condição em que Add
o único método chamado pode ser útil).