io proverei con una cosa del tipo
codice:
<script>
function CalcoloPunti(myOne){
 var utilizzati = document.getElementById(myOne).value;
 var totale = document.getElementById('PuntiTot').value; 
 var rimanenti = (totale*1)-(utilizzati*1);
 if(myOne=='Valore1'){
  aggiornaCampo('Valore2', rimanenti);
  aggiornaCampo('Valore3', rimanenti);
 }else if(myOne=='Valore2'){
  aggiornaCampo('Valore1', rimanenti);
  aggiornaCampo('Valore3', rimanenti);
 }else if(myOne=="Valore3"){
  aggiornaCampo('Valore1', rimanenti);
  aggiornaCampo('Valore2', rimanenti);
 }
}

function aggiornaCampo(quale, quanti){
//e qui ripopoli le select, hai l'id del select e i punti rimanenti da assegnare
}
</script>

<select name="Valore1" border=0 onChange="CalcoloPunti('Valore1')" >
        <option value="5">+5</option>
        <option value="4">+4</option>
        <option value="3">+3</option>
        <option value="2">+2</option>
        <option value="1">+1</option>
        <option value="0">0</option>
            ...
            ...
</select>
<select name="Valore2" border=0 onChange="CalcoloPunti('Valore2')" >
        <option value="5">+5</option>
        <option value="4">+4</option>
        <option value="3">+3</option>
        <option value="2">+2</option>
        <option value="1">+1</option>
        <option value="0">0</option>
            ...
            ...
</select>
<select name="Valore3" border=0 onChange="CalcoloPunti('Valore3')" >
        <option value="5">+5</option>
        <option value="4">+4</option>
        <option value="3">+3</option>
        <option value="2">+2</option>
        <option value="1">+1</option>
        <option value="0">0</option>
            ...
            ...
</select>
ma in questo modo ogni volta che cambi valore ti azzera gli altri 2 select..tramite degli hidden field dovresti controllare che una volta settato un valore, non venga resettato dalla selezione dopo..