Supporting 64 bit is not hard, but supporting both 32 bit and 64 bit is very hard. The very deep core is different : 64bit pointers (64 bit indxed arrays?), different OS and DirectX API calls, and also affect script language API (CiV will keep python?).
As I did admit already, I am not a programmer.
Nevertheless, thinking back I remember when XP hit the market and at that time there were quite some drivers, programs and whatever being based on 16bit architectures.
Nevertheless, it worked.
This gave me the impression that something similar should be possible right now, too.
Especially, I would like to have a program which makes use of the additional RAM which is available right now.
Since modability has been mentioned, we already know that there will be extensive mods in the future. And I would like them not to be limited by an old 2 GB barrier.
I don't mind if certain parts of the engine were still running making use of 32bit architecture, but in total the program should be able to handle as much RAM as available.
Supporting muticore generally is not so hard also, but civilization games are not realtime games, the problem is that the basic concept of the game is not paralell. It's hard to find processes which can run parallel.
I could imagine that calculating trade routes, the equivalent of culture, prices for ressources and so on could very well be calculated in parallel tasks - especially whilst the human player is "slowly" making his inputs.
Even the graphic representation of moving units could be done that way (as I think), not blocking the "AI" from calculating what it "wants to do".