var можно писать, там где явно видно, что за тип у этой переменной.
Не хочется создавать длинное объявление, где дублируется название класса
var sync = new SynchronizationContext();
Видно сразу какой тип в переменной
var data = (SomeType[])context;
Linq
var filtered = data.Where(...);
Считаю, что пихать var где ни попадя неприемлемо. Зачем читающему код наводить курсор мыши, чтобы увидеть, какой это тип переменной.
Зачем вместо int писать var. Это вообще ни в какие ворота.
В решарпере далеко не все правила по дефолту нужно считать единственно верными. Их можно отключать.