если в двух классах-родственниках невиртуальный метод с разным поведением, плюс из-за вывода типа программист думает что вызывается метод одного класса, а на самом деле метод другого
1) C# покажет ворнинг если у тебя есть невиртуальные одинаковые по сигнатуре методы в иерархии, попросит тебя вручную добавить ключевое слово = подпись что ты согласен с тем, что хочешь отстрелить ногу
2) мне не ясно когда автовод может запутать программиста и вызвать не то что он хочет