Inner workings are explained in the comment above cache_fplookup.
In case of trouble (symlinks, mount points which don't support lockless lookup or mismatched counters) an attempt is made to get a reference on the last validated vnode and to continue from that point in the regular lookup. If all fails the code aborts entirely and regular lookup starts from scratch.