Quindi si usano addEventListener e removeEventListener come "interruttori" sulla funzione contenente il preventDefault.
Sì, in questo caso è così ma chiaramente si può risolvere in vari modi.

Ad esempio, potresti inserire la condizione direttamente nella funzione che assegni come listener; una cosa del genere:
codice:
<script>
    var casella = document.getElementById("privacy");
    document.getElementById("myLink").addEventListener("click", function(event){
        if (casella.checked == false) event.preventDefault();
    });
</script>
In sostanza applichi la funzione solo per il click del link e quindi, al suo interno, esegui il controllo del checkbox.

Il risultato è uguale, cambia solo la logica di funzionamento.

Sbagliavo a cercare l'interruttore insomma.
Perché lo cercavi a luce spenta, bastava pigiare l'interruttore per accendere la luce, così avresti visto bene dove cercare l'interruttore

Il codice va benissimo grazie.
Bene