Поскольку я не являюсь экспертом по языкам программирования, мне хорошо известно, что это может быть глупый вопрос, но насколько я могу судить, С# обрабатывает анонимные методы и замыкания, превращая их в методы экземпляра анонимного вложенного класса [1], создавая экземпляр этого класса, а затем указывая делегаты на эти методы экземпляра.
Похоже, что этот анонимный класс может быть однажды создан только один раз (или я ошибаюсь в этом?), так почему бы не сделать анонимный класс статическим?
[1] На самом деле, он похож на один класс для закрытий и один для анонимных методов, которые не фиксируют какие-либо переменные, что я не совсем понимаю обоснование для этого.