Кажется излишним помечать все члены в статическом классе как статические, но C # требует, чтобы вы сделали это. Это просто способ, которым был реализован компилятор.
Насколько я знаю, нет членов, которые наследуют какие-либо модификаторы от типа по умолчанию. Другими словами, члены общедоступного класса не все общедоступны по умолчанию и т. Д. Требуя пометить каждый элемент как статический, вы явно выкладываете контракт типа.