You could apply the same logic to the Pascal "label" statement. You can
(and should) always use a different construct and you could therefore
claim that the "label" statement is unnecessary because you cannot think
of a situation where there is no alternative - but it exists. And
sometimes it is convenient to use. You could even go further and say
that the multiplication operator is unnecessary because you can always
achieve the same thing through repeated summation. But, of course, it is
more convenient to use multiplication.
Forward declared procedures exist in Jensen and Wirth Pascal and they
exist for the purpose of allowing the convenience of those who sometimes
find it easier or clearer to code an algorithm using mutual recursion.
Why do you need a deeper explanation?