Вложенный класс является частью включающего класса, как и метод. Предоставление через них закрытых свойств не нарушает инкапсуляцию, равно как и предоставление закрытых свойств через методы.
Модель, которую C # использует для контроля доступа, заключается в том, что вы можете получить доступ ко всему, что вам захочется в пределах определяемого вами класса , и трудно понять, как это может работать любым другим способом.