В С# in depth (отличная книга до сих пор), Skeet объясняет, что события не являются полями. Я читал этот раздел много раз, и я не понимаю, почему различие имеет какое-то значение.
Я один из тех разработчиков, которые путают события и делегируют экземпляры. На мой взгляд, они одинаковы. Разве это не просто форма косвенности? Мы можем многоадресной рассылки. Событие настраивается как поле как сокращенное... конечно. Но мы добавляем или удаляем обработчики. Укладка их для вызова при срабатывании события. Разве мы не делаем то же самое с делегатами, не складываем их и не вызываем вызов?