BUTTON命令は、呼んだ時点でボタンに何か働きかけている訳ではなく、内部で覚えている状態に問い合わせて値を取得する仕組みです。 BUTTON(0)~(3)用の、四種類の見えない変数が中にあると考えて問題ないと思います。 その変数の状態は、1フレームの間は変わることはなく、VSYNC命令を終えるタイミングでのみ更新されます。VSYNC命令を呼んでなければ、もし呼んでたら通り過ぎていたタイミングで勝手に更新されます。 なので、1フレーム内にBUTTON命令を複数好きに呼んでも大丈夫です。命令がお互い干渉したりのような問題は起きません。