The terrain underneath the road or railroad only matters if you are moving units there from a square with no roads whasoever. For example, a cavalry can move one square onto a road and then move three more squares on it, provided that the road starts on flat land. If the road starts in difficult terrain, such as hills or a forest, the cavalry will use both it's movement points just to get on it.
As I already pointed out, cities that are not purposely built on a railroad act as only roads and units passing through lose 1/3 of a movement point.
Another reason you may be "randomly" losing MPs is if you issue GO commands to your units. For some reason units with a GO order use railroads as only roads (x3 movement).
Oh, and no, it doesn't matter what kind of government you are running.