It's necessary to switch between both when I need frequent updates of the target position vs when I need 'complex' paths to be resolved.
Think of the zombie-type behaviour in a top down shooting scenario:
When my enemies are spawned they need to figure a way around various obstacles to get in attack range of the player.
This is resolved by pathfinding, but can only be updated every couple of ticks.
When my enemies are close to the player (and have LoS) they use bullet to properly follow the player who is constantly moving.
In most cases there will be no major obstacles in their way - if LoS were to be broken I switch back to pathfinding.
Just check my old arcade example, it illustrates the situation perfectly:
https://www.scirra.com/arcade/action-ga ... 10787?cp=5
the first enemy you encounter has the issue where he won't move when he's supposed to 'circle' the player (see debug info)
the following few enemies swarm you zombie-like, they apply both behaviours (see debug) and it works pretty nicely.