Ship fire and smoke are tied to specific damage hooks. For most ships, there is one such hook at about the middle of each of the 3 hull sections ( or one section for very small vessels). Guns pretty much all have a hook to which their own fire/smoke effects are tied when destroyed.
When a ship takes damage its speed is adjusted. When destroyed, it stops. I suppose a ship could be made to stop when damaged...
I have recently been doing a bit more work on ships and their environment. Just about a week ago I added a random, delayed secondary explosion or fireball after destruction, which is tied to the same position (middle of the whole hull mesh, it seems) as the already existing explosion at the instant of destruction. Instead of the same, small stock effect, I have a variety of effects to draw upon, with a weighting based upon ship size. I've pondered the implementation of such events after a hull section takes damage, with the secondary tied to the same hull section hook...