Yeah... the funny thing is that it appears to be in two places.
// AL 11-15-97: Rules for engine strength affecting max speed:
// 1. if strength >= 0.5 no affect
// 2. if strength < 0.5 then max_speed = sqrt(strength)
//
// This will translate to 71% max speed at 50% engines, and 31% max speed at 10% engines
and// routine to return the strength of a subsystem. We keep a total hit tally for all subsystems
// which are similar (i.e. a total for all engines). These routines will return a number between
// 0.0 and 1.0 which is the relative combined strength of the given subsystem type. The number
// calculated for the engines is slightly different. Once an engine reaches < 15% of it's hits, it's
// output drops to that %. A dead engine has no output.
From the code, it looks like the effects are cumulative, but from the test I just ran with a Deimos, it looks like only the first effect is used. Odd.