I think it is necessary.
In the last iteraction of the cycle if you have a delegate function that is not active it will still be returned. And this shouldn't happen. The other option is on the return statement use a ternary to ask if the delegate function we are trying to return is active or not