I think people do not understand the var keyword. They confuse it with the Visual Basic / JavaScript keyword, which is a different beast all toghether.
Many people think the var keyword implies weak typing (or dynamic typing), while in fact c# is and remains strongly typed.
If you consider this in javascript:
var something = 5;
you are allowed to:
something = "hello";
In the case of c#, the compiler would infer the type from the first statement, causing something to be of type "int", so the second statement would result in an exception.
People simply need to understand that using the var keyword does not imply dynamic typing and then decide how far they want to take the use of the var keyword, knowing it will have absolutely no difference as to what will be compiled.
Sure the var keyword was introduced to support anonymous types, but if you look at this:
LedDeviceController controller = new LedDeviceController("172.17.0.1");
It's very very verbose, and I'm sure this is just as readable, if not more:
var controller = new LedDeviceController("172.17.0.1");
The result is exactly the same, so yes I use it throughout my code
UPDATE:
Maybe, just maybe... they should have used another keyword, then we would not be having this discussion... perhaps the "infered" keyword instead of "var"