It depends on the actual code. Do you use arrow functions in the render method? This can cause unnecessary render on unrelated child components.
React components as functions result in no real advantage. I think even the react team stated once function components are slower than classes. But I think that was fixed in some 16.x releases.
Implementing shouldComponentUpdate should really only be done when necessary which was never in all my case until now.
Also consider the following: render is called very often at least to say. But if the virtual Dom didn't change, the actual Dom won't either. So at least of the render performance perspective this isn't an issue. Although complex calculations in render methods can cause performance issues and should be avoided.