Why does the standard .NET event pattern recommend copying a multicast event field to a local variable (or using `?.Invoke`) before invoking it, rather than null-checking the field directly?
// Older style
if (Changed != null)
Changed(this, e); // potential bug