Все зависит от контекста применения.
1)
var list = new ObservableCollection<SomeReallyLongTypeName>();
Здесь как бы и так понятно что за тип будет у list и нет особого смысла явно говорить про это.
Таким образом мы сокращаем код и его удобней читать.
2)
ComplexType businessObject = DoSomeWork().OtherWork(a,b).GetResult(someArgs);
Здесь стоит задуматся об очевидности возвращаемого типа , иногда будет удобней все-таки оставить конкретный тип.
Хотя если мы используем LINQ все же принято его юзать с auto типами.
P.S. Решарпер классная штука но не всегда стоит вестись на все что он говорит. Почитайте Мартина "Чистый Код" или нечто в этом духе, будете себя чувствовать несколько уверенней в этих тонкостях.
P.P.S Я ужасно пишу, я знаю, сорри;)