You might as well merge this whole set of ifs into a single one:

    if ((!pszDest && (IsLocal(addrConnect) ||
        FindNode((CNetAddr)addrConnect) || CNode::IsBanned(addrConnect) ||
        FindNode(addrConnect.ToStringIPPort().c_str()))) ||
        (pszDest && FindNode(pszDest))) 
    {
        return false;
    }