Un point virgule seul est une instruction valable en C. Cette instruction ne fait rien, donc on ne s'en sert pas très souvent, mais elle existe quand même.
Le while doit être suivi, soit d'un bloc entre accolades, soit d'une instruction. C'est la deuxième possibilité qui est prise en compte quand le compilateur voit le point virgule tout seul.
Le bloc qui suit le point virgule est considéré comme n'ayant pas de rapport avec le while. Il est possible de mettre des blocs où l'on veut en C, pas forcément derrière un while ou un if.