In this case there was: the reason you need to reinstall to go from uniprocessor to SMP was because NT shipped with two HALs (Hardware Abstarction Layer): one supporting just a single processor, and one supporting more than one.
The SMP one had all the code for things like CPU synchronization and interrupt routing, while the UP one did not.
If they'd packed everything into one HAL, single-processor systems would have to take the performance hit of all the synchronization code even though it wasn't necessary. Memory usage would be higher too. I expect that you probably could run the SMP HAL on a UP system (unless Microsoft put extra code in to make it not let you), but you wouldn't really want to do that, as it would be slower and require more RAM.
So it wasn't that those abstraction layers didn't exist back then. It was that abstraction layers can be expensive. This is still true today, of course, but we have the cycles and memory to spare, more or less, which was very much not the case then.
Because it's easier to just forbid than eat the cost or (heaven forbid!) talk to people.
How much was this pizza costing the company? Pennies in the grand scheme of things. How much were the rental cars costing? Pennies. Probably a rounding error in even the smallest department's budget. You can afford to hire an army of engineers making $100K each, but $10 pizza is where you draw the line? $100 rental cars? Really???