FlxGroup can be added to other groups/states, so update() and draw() are called on all the members of the group with exists == true. Be careful, adding to two groups can lead to update() called twice resulting in 2x simulation speed (can be solved by marking the group active = false).
Use arrays when you don't want to update/draw sprites, or they are updated/drawn from other group already.
And also, as you said, use groups when APIs demand FlxGroup, like for object recycling or collision.
Looks like your connection to HaxeFlixel was lost, please wait while we try to reconnect.