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.
Yup. Before flash memory, devices like video game cartridges which had game saves actually needed a battery to power the memory holding the saves.