По моему мнению, это было сделано, потому что в большинстве случаев вам не нужны обобщенные специализированные опции, такие как Retry или Ignore.
Если вам нужно больше, чем OK / Отмена, вы должны использовать какое-то диалоговое окно задачи, например, с выписанными ответами. Таким образом, вы не ограничены несколькими значениями enum, о которых кто-то думал несколько десятилетий назад, и DialogResult просто положителен / отрицателен для базового использования, и вы можете реализовать свое собственное свойство, соответствующее вашим сложным потребностям. Поэтому требуется только true / false, и null, указывающий, что окно еще не было закрыто (этому свойству еще не присвоено значение).
Если у вас есть диалоговое окно, которое представляет собой нечто большее, чем просто вопрос, на который пользователь должен ответить (например, форма ввода), вам, как правило, лучше с OK / Отмена, поэтому вам не нужно больше значений.