1)
die viewports werden wegen der unterschiedlichen z achsen und tönungen benötigt. wenn man alles in ein viewport packt, kann es zu unschönen effekten kommen. zb wegen der screen tönung, die gilt für nur ein bestimmtes viewport. wenn alles in einem ist, wird alles gefärbt. zusätzlich kann es zu überlappungen von animationen/sprites kommen, die durch die viewports verhindert wurden.

2)
es kommt darauf an wie oft aktualisiert wird. im standart ks ist das akzeptabel, wie du es machst.
bei einem schnellen aks wo sich häufig und schnell hintereinander der balken ändert und es auch noch mehrere auf einmal gibt, sollte man eher ein sprite verwenden und per src_rect die position aktualisieren, da bitmap bearbeitungen immer vergleichsweise langsam sind.
(siehe sprite_character, dort wird auch nicht jedes mal wenn der char sich bewegt das bitmap geändert)

@sorata
Graphics.frame_rate = 80
siehe help file
aber dadurch wird nicht nur die fps erhöht, sondern das gesammte spiel.
statt 40 mal wird die schleife in $scene.main nun 80 mal durchlaufen -> spiel läuft doppelt so schnell -> es muss doppelt so viel berechnet werden
theoretisch gehts bis 120 aber die meisten pcs schaffen das gar nicht.