Non viene certamente raggiunta...

codice:
 else {

      a [ d ][ e ] = contatore;
      /* se le nuove coordinate della posizione del cavallo sono accettabili
       * (cioè se risultano dentro la scacchiera e se la casella non è mai stata
       * visitata), andrò a printare nella casella un intero compreso fra 1 e 64
       */

      if ( contatore == 63 ) {
      /* se contatore vale 63 significa che il cavallo ha visitato con successo
       * tutte le 64 caselle della scacchiera. Il contatore parte infatti da 0
       * quindi da 0 a 63 sono 64 caselle.
       */

          return 0;

      }
DA QUA IN POI NON C'E NESSUNA RETURN 
      contatore++;
      f = 0;
      /* se ho avuto successo, la mossa successiva sarà di nuovo la 0
       */
      percorriScacchiera ( a, b, c, d, e, f );
      /* in questo caso f (cioè la mossa compiuta) non viene aumentato, perchè la
       * precedente mossa ha avuto successo (cioè cavallo dentro scacchiera e casella
       * mai visitata). Di conseguenza, provo a fare la mossa successiva ripartendo da
       * 0 e, in caso di insuccesso, proverò con la mossa 1.
       */

   }