Does anyone know why Lionel and MTH (and most other O gauge/scale manufacturers) make their cars and trucks in 1:45 or 1:43 when the trains and layout are 1:48 scale?
Lionel and MTH don't make them. They source them from companies that make them for the die-cast car collector market. That market is well-established at 1:43, which is English 0 gauge. When the collector market was getting established, a lot of the manufacturers were in England. Basically nobody wants to rock the boat by making 1:48 cars that might or might not sell.
It's kind of unfortunate. 1:43 cars are about 10% oversize for American 0 gauge, and so they look out of proportion. They also won't fit on an Auto Loader, except for the smallest cars. K-Line used to make a near-scale Evans Auto Loader, but the only cars they could fill it with were Corvettes, 2-seater T-Birds, and Volkswagens. I got one with no cars and went nuts trying to find cars that would fit that were not '56 Vettes with the top down. Finally I filled it with French-made (Eligor) '62 Corvair coupes. Anachronistic, but at least they fit and looked right.