The reason trucks are cheaper is because the roads are paid for by gas taxes on cars. The weight taxes on trucks do not begin to cover the fatigue damage caused by trucks. Most of the repaving of highways is due to truck damage.
Railroads, on the other hand, pay all their own track maintenance, and even have to pay property taxes on the track. The whole system is tilted against railroads.
FWIW, I didn't say that trucks are cheaper. It's been a while since I've priced this stuff out, but, from what I recall, trains are cheaper for going cross country. Your point still stands, though, if it's correct.
Railroads, on the other hand, pay all their own track maintenance, and even have to pay property taxes on the track. The whole system is tilted against railroads.