Я думаю, что модифицировать любые объекты по событию модификации - это уже плохая практика. Я предпочитаю просто запоминать ID измененного объекта и делать всю обработку в событии простоя или в doc_CommandEnded.
Конечно тут есть подводные камни: до вызова обработчика может быть модифицированно много объектов, может быть удален объект, может быть изменен несколько раз. И вообще может обработчик не вызваться и данные рассинхронизируются (в этом конкретном случае не будет соответствия параметра и атрибута). Значит доверять данным в атрибуте нельзя.