Warum denn das ?
Weil du _delay_ms nur mit einer Konstanten aufrufen darfst. Ansonsten muss die Umrechnung Zeit->Cycles zur Laufzeit gemacht werden, was die Floating-Point-Lib mit rein zieht.

Ohne die Zeile ist t konstant 10. Der Compiler ersetzt daher das "_delay_ms(t)" direkt durch "_delay_ms(10)". Mit der Zeile ist t nicht mehr konstant, und es macht Bumm.