Non so, io continuo a non capire bene il senso di tutti questi discorsi.
Posto che in Arduino un ciclo infinito "utile" c'è già (il loop()), e quindi va sfruttato quello (e com'è fatto, è fatto, tocca farselo andar bene), l'unica utilità di un altro ciclo infinito che vedo è quella di BLOCCARE il programma in caso di evento inatteso (tipo devo leggere dei tag RFID e non c'è il lettore). In questo caso, perché preoccuparsi dell'efficienza? Intanto non c'è niente da fare, solo rimanere fermi lì... Che ci metta un nanosecondo o due ore a fare il loop, cosa cambia?
E comunque io resto convinto che solo un compilatore idiota potrebbe generare codice diverso tra
for(;;)
;
e
while(true)
;
o anche
antani: goto antani;