For what it's worth, I can precise that the "double set of the weapon" idea is wrong. Even if two projectiles/rays hit at the same time, the game processes each one at time, and if the first one causes the UFO to crash, the second one goes nowhere - and thus it won't change a crash into a cloud of debris.
ref: DogfightState::update() in DogfightState.cpp
https:// Projectile reached the UFO - determine if it's been hit.
if (((p->getPosition() >= _currentDist) || (p->getGlobalType() == CWPGT_BEAM && p->toBeRemoved())) && !_ufo->isCrashed() && !p->getMissed())
{
(hit accuracy check)
}
isCrashed() becomes true when damage>50%, and thus it bypasses the entire "hit" logic