Well, yes, they could make a system like that. But it would be wrong! Warfare, particularly at the level of abstraction used in Civ, is not a game of mathematical (or any other sort of) certainties. A battle cannot be said to uniformly affect attackers and defenders in the same way. The only reason why games such as Panzer General or Advance Wars can get away with such models is because they have a tactical breakdown operating over very short increments of time and with outside factors taken into consideration. If your model breaks time down into so much as a whole day between engagements, much less the kind of time gaps used in Civ games, there are too many variables to attempt to justify lack of random results in combat.
I'll put it to you another way. The Spanish Armada was defeated due to a communications error coupled with some bad weather. It rained the night before Waterloo. If it hadn't, it's quite possible that the French would have carried the day. A Confederate officer lost a cigar box with Robert E. Lee's plans for the Antietam campaign inside, plans that were then found by Union soldiers. Stormy conditions made German advances in the Battle of the Bulge operational-and the weather lifting eventually sealed the fate of the operation. And, while these emphasize situations in which whole armies were affected, it's not hard to understand how smaller, more limited factors could swing a single engagement one way or another.
In war, there are no "sure things," and that's certainly true of a battle of the scale that unit-vs-unit combat will apparently represent. We need randomness.
If there is PURE randomness, then Spearmen WILL defeat tanks... for that matter a damaged spearmen will defeat a Full strength tank. (one time in a trillion)
They indicated that will not happen, indicating semirandomness
I'm saying there should be and speculating that there is semi-randomness.
ie Str 6 v. Str 4
The Str 6 unit does 60 hp of damage... lets make it +- 20 (so either 40 or 80)
The Str 4 unit does 40 hp of damage... same +-20 (so either 20 or 60)
so in 2 rounds, the Str 6 unit could be
dead, (25%)
at 20 hp (50%)
at 60 hp (25%)
the Str 4 could be
dead (75%)
ay 20 hp (25%)
result is still random, even to the degree of winner and loser (or even if there is no loser..ie no unit dies) That is because those results are close together.
But this would not happen with a Str 4 and a Str 16 unit (the Str 16 would to 80 hp..ie 60-100 so it would kill the Str 4 in 2 attacks guaranteed, and the str 4 would do 0-40 hp /attack.. so even if the worst happened, the Str 16 would survive... just badly damaged at worst 20 hp..but possibly none.)
War would still be random, but to a limited degree.. a unit would be At least so good, and at most so good.. randomness would be within a range.
In the previous civ engines, it was theoretically possible for any unit to defeat any other one (assuming they could attack each other).
Now you can change the degree of randomness, and they might do that, but I don't think there will be many 1% chance of winning type situations (unless you are talking about 1 army v. another)