Si la función se mantiene dentro del componente, se reinicializará en cada procesamiento, lo que se puede evitar con useCallback, pero eso tiene algún costo. ¿Deberíamos mantener las funciones fuera del componente y pasar accesorios, estado, funciones de actualización de estado o lo que sea necesario como argumentos?
Sí, porque así será más conveniente administrar la función, la construyes una sola vez y le pasas valores dinámicos. Si lo define en cada componente de su código, escribirá la misma función varias veces, lo que no es efectivo en absoluto.