r è un nome arbitrario assegnato ad una variabile, come sempre accade quando si assegnano dei nomi alle variabili.
In tal caso la hanno chiamata r allo stesso titolo con cui avrebbe potuto anche chiamarla che so pippo! :-)
E' legittimo inizializzare più variabili in un ciclo for, separate da una virgola; quanto a giustificarne l'impiego, è solo il contenuto successivo del ciclo che potrebbe delucidare in merito all' uso cui quella variabile è destinata.
In linea di massima
for(var i=0, r=0, pippo=44
è una espressione legittima. Di più, finanche
for(;
cioè lasciare vuoto lo spazio destinato alla inizializzazione delle variabili del ciclo è legittimo, se lo script lo richiede per un qualche motivo.
Lo spazio successivo
for(;qui
è per la condizione che deve verificarsi affinchè il ciclo continui a iterare - il fatto che spesso in javascript sia la length di qualcosa non significa che non possa essere qualcos' altro: se vedi quello spazio allocabile come l'equivalente di una condizione if lo vedresti in un modo concettualmente non sbagliato.
Il terzo spazio è per quel che deve accadere ad ogni iterazione (di solito, aggiornamenti delle variabili inizializzate nel primo spazio)
for(;;qui