Одно время у меня был паттерн такой — был пайп, который на вход просто принимает функцию для фильтрации. Так логика не выходила в шаблон, а оставалась в компоненте и не пересчитывалась без изменений входных данных для фильтрации. То, что данные должны быть немутабельные и используется OnPush у нас просто априори, но в следующей статье обязательно отражу, спасибо за подмеченный момент.