Caro Mikelius, ILDoctor ragiona diversamente; invece di fare quello che tu ti aspetti, ovvero
return a[0]+somma(&a[1], n-1);
fa (o meglio, vorrebbe fare)
return a[n-1]+somma(a, n-1);
ma è comunque corretto Certo che per fare una somma non avrei scomodato una funzione ricorsiva