tl;dr I think Civ players are right to expect to win when they have a better unit.
For example, Musketeers will almost always lose to Riflemen even though their stats are very similar apart from the Riflemen unit having 100% more health.
There are some things I disliked about the game, for examples city walls turns any city into an almost impregnable fortress until the very end of the game, but the unit health system was satisfactory.
A good replacement example would be Archers (3 attack, 2 defense, 1/1 hit points/firepower) vs Musketeers (3/3 attack/defense, 2/1 hit points/firepower).
Regarding city walls: If the units inside are musketeers or weaker, cannons may do well (depending on the units' respective veterancy). If they're riflemen or higher, I think veteran artillery will still generally win. And then, of course, there are bombers and howitzers in the later game.
About city walls:
The computer loads cities up with a massive amount of units on deity (usually enough to defend against a one-turn attack, I find it difficult to park enough cannons or artillery next to their cities). The only reliable way I have found to take out cities is to spam their cities with diplomats and sabotage until I get their city walls, it is always the very last thing he will sabotage.
It's hard to get a technological advantage for a long time because computer players will always help each other with technologies so in that sense they can get 6x as much science output as the player, although usually less because the computer is not very clever about boosting their trade.
I think the balance would have been better if catapults, cannons, and artillery straight up ignored city walls like the howitzer does.
The pollution from nuclear missiles contributing to global warming make the endgame frustrating too because the computer loves to use nukes, and you are punished for their pollution squares as well as your own. Sigh, time for a new game. lol
For a more realistic and complex treatment of nuclear warfare, I strongly recommend DEFCON.
https://www.introversion.co.uk/defcon/ || http://store.steampowered.com/app/1520/
Slightly OT, but I found the argument most convincing that the "improbable=impossible" way of thinking sometimes produces logically inconsistent or plain impossible results.
The classic wheel of fortune is an example: You're playing wheel of fortune with three other persons. The wheel is evenly split into four quarters, with each of the quarters having the name of one person written on it. (So one of the four quarters is "your" quarter) The wheel is spun and the person whose quarter ends up on top gets the reward.
How gif is your chance to win? 1 / 4. How big is your chance not to win? 3 / 4. So it's unlikely that you will be the winner. However, the wheel is fair, the probability of winning is the same for each player. So it's unlikely for anyone to be the winner. At the same time, it's physically impossible for the wheel not to produce a winner.
If you think of unlikely events as "practically never occuring", this is a logical contradiction. Only if you accept that unlikely events do happen, the contradiction can be resolved.
So you can (and will) miss 90% shots, it should not happen twice in a row the same turn.
Edit : Found the source : https://twitter.com/m1sp/status/697268847187890176
http://www.independent.co.uk/life-style/gadgets-and-tech/new...
https://www.youtube.com/watch?v=bY7aRJE-oOY
Multiply that by a million daily active users and it really works out to "Stuff that has a 1-in-a-million chance of happening will happen to somebody every day". Leading to player reviews like "The game rolled me a 1-out-of-10 SIX TIMES IN A ROW!!! The game is explicitly cheating me!!!" every day. Thus games tend to use random shuffles rather than independent random numbers so as to better align with common misunderstandings about statistics...