C compilers (at least on personal computers) weren’t great at optimization back then and every kilobyte mattered - the user only got 640 of them, going beyond that required jumping through hoops.
Similar for MHz, hand optimization was important for performance since there was so little CPU time to go around.