Tranquillo, fai bene ad insistere: più idee = lavoro migliore 
Cmq il controllo che ho implementato su data di nascita e sesso si va ad AGGIUNGERE (e non a sostituire) ai controlli del CF che si trovano in giro nella rete, ergo la validità degli altri campi è garantita.
Per quanto riguarda il giorno di nascita la scelta avviene tramite un SELECT, ovvero l'utente può al max selezionare 31
da cui ne consegue che il controllo > o < di 40 ha senso eccome 
Cmq nello specifico il controllo che uso è questo:
codice:
function codiceFISCALE(cfins)
{
var cf = cfins.toUpperCase();
var cfReg = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/;
if (!cfReg.test(cf))
return false;
var set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
var setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
var s = 0;
for( i = 1; i <= 13; i += 2 )
s += setpari.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
for( i = 0; i <= 14; i += 2 )
s += setdisp.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
if ( s%26 != cf.charCodeAt(15)-'A'.charCodeAt(0) )
return false;
return true;
}
Cui ho aggiunto, come dicevo sopra, il controllo incrociato SEX e compleanno 
Alla prox e buona serata
Paolo