Ну для async pipe нужно чтобы проперти были асинхронными, и так конечно делать красивее, но детектить изменения тоже иногда можно
проверти в ангуляре обычно хранятся в Observable(если речь про состояния) и как бы само напрашивается решение через async
лично мне детектить приходилось только в тех случаях, когда компонент создавался динамически, и у меня была только ссылка на инстанс, и чтобы компонент перересовывался я дергал его changeDetection