Initially function was introduced in r53541 (KAME initial commit) to "provide hints from upper layer protocols that indicate a connection is making "forward progress"" (quote from RFC 2461 7.3.1 Reachability Confirmation).
However, it was converted to do nothing (e.g. just return) in r122922 (tcp_hostcache implementation) back in 2003. Some defines were moved to tcp_var.h in r169541. Then, it was broken (for non-corner cases) by r186119 (L2<>L3 split) in 2008 (NULL ifp in nd6_lookup). So, right now this code is broken and has no "real" base users.
Even if ability to provide reachability hint from upper-layer protocol like TCP might sound as a good idea, it is not trivial to do efficient implementation. Personally I don't think it is needed ATM - if one really needs to reduce number of ND confirmations, "basereachable" variable can be increased to sufficient value. Given that, I'd like to remove the part of code in question.
Why the += ?