The filter/derived-state case is the one I see most often in real codebases, usually paired with a second useEffect just to reset the derived value when a dependency changes. Once you move it into render (or useMemo if it's expensive), that whole reset-effect disappears too, not just the original one.