Прежде всего, C # - это управляемый язык, следовательно, нет утечек памяти. Когда-либо.
Во-вторых, не принимайте MSDN в качестве окончательного решения, когда вы пытаетесь оптимизировать. Многие фрагменты кода, которые вы там найдете, даже не соответствуют собственным стандартам кодирования MS (даже самым базовым из них) или даже здравому смыслу.
В-третьих, строка: private _delegateInstance = new myDelegate (myMetho); не создает ничего статичного. Он создает переменную, которая содержит новый экземпляр, возвращенный из нового myDelegate (myMethod).
Наконец, использование ключевого слова «new» определенно будет создавать новый объект myDelegate при каждом вызове, а также поведение, совершенно отличное от написанного вами второго фрагмента кода, но в некоторых случаях это требуется.
Возможно, вы захотите использовать второй вариант, который вы написали, но настоящая правда в том, что вам следует потратить время и прочитать \ узнать больше о делегатах и C # в целом.
Удачи и наслаждайтесь.