вы все все очень правильно думаете, и скорее всего у вас есть шанс на хорошее будущее в разработке, но пока адепты ангуляра, реакта и вью об этом не додумались и продолжают вешать хэндлеры-дубликаты на каждый элемент, который может получить событие: будет у вас пять кнопок, от которых зависит одно значение элемента, они повесят пять хэндлеров для этого значения
в лучшем случае они изобрели shadow tree и там даже пытаются передавать сообщения по веткам, но по всей видимости безуспешно, если такая простая мысль, как ваша, им до сих пор не пришла в голову
чтобы сделать то, что вы хотите, нужно чтобы все элементы интерфейса имели свои уникальные ID и были связаны отношениями родитель-ребенок в дереве, по которому легко передавать "ивент, типа onBlockShown", причем даже достаточно передавать универсальный всех ивент синхронизации, по которому остальные элементы будут делать все, что им нужно сделать в этот момент
при таком раскладе у вас будет полная свобода: вы сможете передавать любой ивент всему приложению/форме, можете передавать только отдельной ветке, только одному элементу или всем элементам, которые ожидают вашего специального события "onBlockShown"
по такой технологии мы снизили сроки разработки с нескольких месяцев работы 2-3 разработчиков до двух-трех недель, включая интенсивное тестирование, одним разработчиком, колоссально минимизировали количество ошибок, причем все наши элементы интерфейса и вся логика легко переносится в любой другой проект