Greedy forwarding can lead into a dead end, where there is no neighbor closer to the destination. Then, face routing helps to recover from that situation and find a path to another node, where greedy forwarding can be resumed.
Selfish forwarding can lead to a dead end, where there is no adjacent node closer to the destination. Then, adaptive routing helps to recover from that situation and find an alternative path to another node, where selfish forwarding can be resumed again.