If you want the game to look realistic, then why not just urbanize every square under your control? That's what it looks like in real life. I prefer having the railroads on every square, because it reminds me that those towns and villages are there, doesn't clutter up the map, and lets me know that that square gets a bonus to production and movement. Not only that, but the world covered in rails looks very appropriate for the modern age.
About the movement: You can take a railroad from one side of Europe to the other in less than a day, and across the US or Canada in less than a week. Why shouldn't I be able to do that in civ in a year? Further, any country being attacked in the real world will have more than enough warning to get their troops where they want them to defend before the invaders even land. Sure, it makes it easier to defend, but it also makes it much more difficult to attack: You actually have to use combined arms, and strategize, rather than just sending 20 tanks into their territory to take everything. Try using artillery and ship bombardment to take out their rails before you attack. And teach the AI to do the same in cIV, and defending won't be a cakewalk anymore either.
About the movement: You can take a railroad from one side of Europe to the other in less than a day, and across the US or Canada in less than a week. Why shouldn't I be able to do that in civ in a year? Further, any country being attacked in the real world will have more than enough warning to get their troops where they want them to defend before the invaders even land. Sure, it makes it easier to defend, but it also makes it much more difficult to attack: You actually have to use combined arms, and strategize, rather than just sending 20 tanks into their territory to take everything. Try using artillery and ship bombardment to take out their rails before you attack. And teach the AI to do the same in cIV, and defending won't be a cakewalk anymore either.