I think you are giving wrong example to explain avoiding the use of useEffect here.
First is, you are not separating conerns by doing this. You are using setMessage inside incrementCount function. You are doing two entirely different task in a increment function.
Second, you are using count and message in child only, so why not declare inside child itself. You could have used count and message in parent to make more sense.
Third, it is better if we can avoid useEffect but we cannot always avoid it.
But as you mentioned, we need to avoid using without dependencies in useEffect.