Se non sbaglio, il risultato di filesize è messo in cache, quindi manterrà il valore della prima volta che viene chiamata.
Visto che tu la usi nel ciclo, continuerà ad avere il valore della prima iterazione.

Se cancelli il filesize nel for e lo metti alla fine dovresti avere la dimensione giusta.

In alternativa puoi usare fstat invece di filesize()

Oppure chiamare clearstatcache() prima di di usare filesize() , ma visto che stai in un ciclo te lo sconsiglio