For coding convenience (and the hope that this gets also fixed in A2/OA) I would suggest just checking one turret i.e. the 'main' turret. That would be the exact turret which would be affected by 'addWeapon' or 'moveInGunner'.
Returning false for Vehicles w/o such a 'main' turret, would be OK; alternatively one could add a new Command which returns the 'canFire'-Value for each Turret via a Turret-Path-Array (i.e. [true (or false, if there is no 'main' turret), [false, true]] or [true , [true, true]] as in your Example.)
Maybe one could create a new Ticket after that one here (hopefully) gets fixed.
Btw.: I think you pointed out the exact Problem behind the Coding of this Command!
Because of the undefined Information which Turret should be considered (it seems to be stored as a Property of the Vehicle) 'canFire' returns false as a non-existing Turret isn't a Turret. Boarding the Main Turret Seat changes the Value to the Main Turret and let's 'canFire' work properly even after disembarking.
There seems, however, be a twist when disembarking from non-gunner seats (see "Additional Information")...