I don't see what makes you guys think the fix is in anyway improper.
It is sufficient, and any more seems like overkill to me.
Make a fragmentation zone, find targets in the zone, ignore any that would not take fragmentation damage, use their distance from the center of the zone (and maybe some input from height difference or the like) to determine the chance that the object is hit.
Optionally, if it is hit, draw a trace from the center of the zone to the object, if nothing else is inbetween, it is hit, otherwise the encountered object is hit.
If you want extra detail for aircraft, run a hit trace for individual parts (wings, tail, nose).
Simple, keeps traces to a minimum, and good enough to simulate something invisible.
Anything more would be like simulating what doors are open or closed inside buildings. Sure, it's more realistic, but completely useless and a waste of resources.