X>Нормально в варианте со словарём, но смысла не имеет: в обычных сценариях этот объект (PropertyChangedEventArgs) создаётся не так часто, что бы имело смысл его кешировать. Что-то где-то у вас изменилось, сообщили об этом. Если поменялось сразу много — выставили имя свойства в пустую строку. То есть, одновременно много таких объектов не живут. Прикиньте, при активной работе — сколько экземпляров в сукунду будет создаваться? один-два? Вряд ли и микроскопом можно будет заметить. Лучше боритесь активно с боксингом, замыканиями и т.п.
Мне приходится писать приложения, в которых данные меняются намного чаще.
Говоря о замыканиях, имеете в виду это?
event += handler
event -= handler
Приложение, где была утечка старое, не помню как там обстояло дело с подпиской\отпиской.