Поля делегатов не являются событиями - они просто являются полями делегатов. Они могут (очень неправильно) проверяться, обнуляться и вызываться внешними вызывающими, поскольку противоречит разработке событий (которые, как правило, могут обрабатывать только объявивший класс).
Инкапсуляция позволяет косвенное обращение, проверку и т. Д .; все желательно. И стоимость минимальная. Это не было бы нормальным для этого, чтобы повлиять на производительность вашего кода.
Это также позволяет использовать их на интерфейсах ; поля не могут быть объявлены на интерфейсах.
Edit:
Вопрос немного неясен, но если вопрос состоит просто в полевых событиях, а не в явном добавлении / удалении с помощью участника делегата ... Тогда это глупо. Не добавляйте ненужный код. События, подобные полям, предпочтительнее, если событий недостаточно для гарантии реализации EventHandlerList.
В частности, компилятор 4.0 теперь очень разумно обеспечивает безопасность потоков (исторически это было не так).