I have always been wondering about why in the following example it is OK to not initialize the instance field (relying that it will have its default value)
The implicit constructor initializes the instance variable for you. Even when you specify a c'tor but don't initialize a field, it's done for you as part of creating the object on the heap. That's not true of stack local variables.