1) Не добавляйте поддержку изменения свойств, если вы не уверены, что она вам понадобится.
2) Если ваш бин - это просто объект значения, имеющий не что иное, как getters / setters / equals / hashcode, подумайте об использовании инфраструктуры AOP (мне нравится Spring), чтобы обернуть объект советами, используемыми для реализации событий изменения свойств служба поддержки. Таким образом, ваш компонент остается незагрязненным с помощью логики, которая необходима только в определенных контекстах (обычно в пользовательском интерфейсе) и которая может изменяться в разных контекстах. Это урок, который я усвоил, когда добавил поддержку изменения свойств ко всем компонентам домена для конкретного приложения - его использовал пользовательский интерфейс, но это сбило с толку команду сервера (там не использовалось) и было просто шумом, когда оно не использовалось.
Я также согласен с тем, что иногда вам не нужно прислушиваться к отдельным свойствам, достаточно знать, изменилось ли что-либо в объекте.