Bad practice to use useEffect when not strictly necessary?

Eg, useEffect(() => {doStuff...;}, [userState, dialogState, someVariable, etc.]), where 'doStuff' could very well exist outside of the useEffect without any change in behavior. (I understand that sometimes useEffect is necessary like when performing side effects but I'm not talking about those cases. I'm talking about pure computation.)

I just joined a new company and code like this exists all over the codebase. I'm assuming that the engineer who wrote this code did so to avoid recomputing 'doStuff' unless the variables directly involved in its calculation have changed. However, I'm reading the React docs and it does seem like using useEffect in this way is poor practice:

If you can calculate something during render, you don’t need an Effect.

To cache expensive calculations, add useMemo instead of useEffect.

Am I correct in assessing that most of these usages in my codebase are bad practice and that the cost of repeating a calculation a few dozen times during rerenders is negligible?