Perché nessuno accetterà campi pubblici in C #?

Sembra che ogni analizzatore statico C # voglia lamentarsi quando vede un campo pubblico. Ma perché? Sicuramente ci sono casi in cui un campo pubblico (o interno) è sufficiente, e non ha senso avere una proprietà con i suoi metodi get_ e set_ ? Che cosa succede se so per certo che non sto ridefinendo il campo o aggiungendolo (gli effetti collaterali sono cattivi, giusto?) – non dovrebbe bastare un campo semplice?