Solutions I see:
[ol][li]
Making a proper vehicle splitting system
[/li]
[li]
Remembering vehicles in explosion code and then smashing them in proper order - for example always picking the parts with least number of neighbors (bad for big vehicles)
[/li]
[li]
Remembering vehicles in explosion code and then smashing all 0 hp frames until no smashable 0 hp frame exists
[/li]
[li]
Remembering vehicles in explosion code and then pushing them with the explosive force
[/li][/ol]
Point 1 would probably require someone who knows map code and vehicle code relatively well. It could (but not necessarily would) make AoE vehicle smashing much slower (in real time - noticeable lag when bombing a car).
Point 2 would fix mininukes not wrecking cars. Unless clever data structures were used, it WOULD slow down car bombing, but possibly so little that it would not be noticeable even when nuking tanks.
Point 3 would be the most similar to current behavior. Naive implementation (just scanning the car for 0 hp frames, smashing it and scanning again until no 0 hp frame exists) could be slower than taking a turn in a burning 10 item density mall. A proper solution would slow it down no more than point 2.
Point 4 wouldn’t cause a noticeable slowdown even if done badly, but wouldn’t really be a fix, just a feature that would make fix less needed.
I’d try fixing this one, but I’m currently trying to get in 2 of my relatively big PRs, each of which is more useful than proper car explosions. When (if) they get in, I might try to help here.