I mean the react docs literally call it an escape hatch[0]. First sentence.
[0]https://beta.reactjs.org/learn/you-might-not-need-an-effect
[0]https://beta.reactjs.org/learn/you-might-not-need-an-effect
This term is typically used for ways of breaking the rules of a framework. With useEffect you’re still very much in React world and need to follow the rules to achieve much of anything with it.
The norm would be not to use an escape hatch. But I doubt there are many React applications that aren’t using useEffect.