Il primo pezzo per determinare la lunghezza della prima stringa va bene (anche se si può fare anche di soli puntatori), il secondo non ha molto senso... come speri di copiare tutta la seconda stringa sommando un carattere ad un altro?

Una versione "di soli puntatori" può essere questa:
codice:
char *stringCat(char *s1, const char *s2)
{
    char * d=s1;
    while(*d)
        ++d;
    while(*d++=*s2++)
        ;
    return s1;
}
o, più leggibile:
codice:
char *stringCat(char *s1, const char *s2)
{
    char * d=s1;
    while(*d != '\0')
        ++d;
    do
    {
        *d=*s2;
        ++d;
        ++s2;
    } while(*d);
    return s1;
}
Ragionaci su.