In one of the base classes for Aircraft there is code to cause AI bailouts when certain damage is incurred. This could be refined, by either increasing the probabilities of bailout or by adding additional test conditions.
But it could be tough to get a balanced set of conditions for all aircraft. Some aircraft suffering X damage might be still flyable, whereas others become death traps. For the former it would be silly to potentially expend crew needlessly.
One instance that bugs me is when wing damage (ailerons, perhaps) results in AI calmly riding their slowly spiralling crate down to impact.
By the way, upon getting down to playing with Java a couple years ago (then when I was still on 4.08, just about to go to.4.09), I found in this particular class an error that might still be present to 4.14 (??). It has to do with bailout probability on aileron damage, where the part name "arone" was misspelled "aroone"! But after correcting this I found no meaningful change to result. Perhaps the expedient fix is to induce a bailout when the main part of the damage check passes, instead of awaiting the occurrence of the second condition. This would likely result in some too-early jumps, but at least there'd be less of the silly rides to oblivion.