C'est rageant. J'ai beau relire mon code encore et encore, le bug n'est pas visible.
J'avais bien prévu le bug du smooth move, en initialisant la nouvelle position du robot dès l'instant où il décide de se déplacer (et donc avant qu'il ne se déplace visuellement).