I'm pulling this topic out of a post I made earlier because I want to expand on it and get a few more comments.
Terrain is still relativity meaningless. The grain and resource addition to city placement is cool. But ultimately its only interesting for about 5 minutes each game, when you hover your mouse over the "settle" button to find the spot with the highest yield near whatever resources you want to grab. It needs to be dramatically expanded upon or it will remain just an interesting side note within the game.
Here is a system that I propose that I think would take the current system and make it much more interesting.
Make city yield tied to a total (or average) of the squares surrounding the city. For instance you put your city center down on a 4,3 square. But its surrounded by a 2,2; 2,3; 3,4; 1,1; 1,1; 0,0; 0,0; and 0,0 squares. Your total yield is then 13, 14. Basically, this is simulating the farms, mines, logging camps, fisheries, etc. that your citizens are actually working on a daily basis near your city. I would go so far as to make any tile that is actually occupied by buildings not contribute to this total. And if its half or quarter occupied it only contributes the open portion to the total. I.e. the only tiles that matter would be those fields and forests outside the city. Is the food production of a city really dependent on the fertility of the ground underneath downtown?
This system would continue as you expand your city with additional buildings. So if you expand out towards those high resource squares you get a good production city. If you snake towards high food you get high pop. This would have the added effect of making the building placement system (which is right now purely aesthetic) much more interesting and meaningful.
Additionally, this system for city resources could be combined with the ability of opposing armies to raze tiles surrounding cities and not just resource improvements. Each turn an enemy army razed a surrounding tile the resource or food yield would drop by one, and the enemy would get some small amount of gildar (perhaps you could make the decrease only temporary, say 50 turns or so). Thus you could hide your army in your well fortified city, but while you did that the enemy could be truly putting a dent in you city's production and food potential, rather than just raiding a couple resource tiles that you can rebuild in a few turns.
Not sure if this is implementable within the current engine, but it seems like we're much closer to it now than we were before.