Ответ 1
Да, буква 0 неявно конвертируется в любой тип перечисления и представляет значение по умолчанию для этого типа. Согласно спецификации языка С#, в частности, раздел 1.10 перечисления:
Значение по умолчанию для любого типа перечисления - это целочисленное значение, преобразованное в тип перечисления. В тех случаях, когда переменные автоматически инициализируются значением по умолчанию, это значение, данное переменным типов перечисления. Для того, чтобы значение типа enum было доступно по умолчанию, литерал 0 неявно преобразуется в любой тип перечисления. Для того чтобы значение по умолчанию для типа перечисления было легко доступно, литерал 0 неявно преобразуется в любой тип перечисления.