I have no problem with that "uncertainty" you describe here. It's just like in real life warfare: superior numbers don't "guarantee" success.
Just think about the battle of Little Bighorn, or the battle of Isandlwana. In both cases basically "stone age people" beat a technologically advanced 19th century army! It happens very seldomly (in 99% of the cases the more advanced weapons will win), but it does happen once in a while. Which is the same in Civ3: in most cases the tank will beat the spearman, but sometimes, very rarely, sand gets into the motor, or the tank crew is very stupid or drunk or whatever, and the stone age people crack the tank...
And there you hit the nail on the head. In 99% of cases the more advanced army will win. That is not what happens. If it was just a case of the obscure loss of a unit here or there then it wouldn't be an issue, but it's not, it's a regular pattern. Because the size of your force doesn't count for anything. Both the battles you mention are about huge numbers out-manning the number and rapidity of bullets available to the attacker, in Civ 3 it's always one Unit versus one Unit. You could have a stack of twenty Cavalry and the first one can still die against a lone Spearman wandering the plains. The second one might red-line and it could be three before you nail it, the other 17 not even playing a part.
Where you do want it to work, however, is if 5 or 10 Spearmen can defeat one wandering Cavalry Unit, by sheer weight of numbers, but anything Infantry or later? You really think morale is going to be great watching the first wave get mown down for zero kills? All those explosions going off around you? And does any Unit ever just surrender in Civ?
When you play a game like this, the pieces on the board are just supposed to be representative of reality, people aren't hoping for Custer's Last Stand in every single encounter. Take one of my current games, using the Sipahi. I landed 30 Sipahi and 10 Infantry on the island of a Civ which had a couple of Knights, about 10 Medieval Infantry, about 15 Longbowmen (mostly fortified in cities) and about 40 Pikemen (mostly fortified in cities), and, my God, but that was such a slog. After taking the first two cities I had not enough troops to even march onto the third city confidently, with 2 dead Sipahi, 3 damaged Infantry and 6 damaged Sipahi and two empty cities to try and defend with Pikemen/ME duos walking about infront of me looking for a way in. And each Sipahi that attacked those duos took Hit-Point damage, putting another 8 into the recovery pile and leaving another couple dead, together with another couple of Infantry sent to the recovery pile.
It was like marching through deep wet mud just trying to overwhelm a nation with a best defence of 3, but also many 2's and 1's where my attackers were all 6s and 95% 8s. It felt like it was taking forever until I finally got an Army, then a second army soon after, at which point they fell like dominoes. And what was killing me wasn't actual deaths, but the fact that every single time (well 90% of the time) I attacked anything I would lose Hit-Points and have to send my Unit to recovery instead of further into the field. And it would regularly take 8 Sipahi to take down 3 Pikemen and an Archer Fortified in a City, causing and endless routine of stop-start-stop-start as I move, recover, defend, recover, move, recover, defend, recover, ever watchful for that enemy Unit just waiting for a lapse in concentration to run behind a gap in my wall and re-take a city (for no other point than cause me societal revolt).
I felt no benefit by having 8.3.3 instead of 6.3.3. I noticed no discernible difference in how the battle played out. Some Sipahi would die without bothering to retreat, even when they go to red almost instantly, some went red instantly and retreated, some went red slowly then died, some went to 2/4, some managed 3/4 and the odd one managed to kill something without losing a single Hit-Point. It was no different to rolling a dice 1-6 each time, no matter the location or defence stats of the defender. And the Infantry with a defence of 10... while none died, many went to 2/4 or 1/4 so quickly against just one attacker with a value of 4 that it took forever to move my front into a front. All the while the odd captured city flipping back and requiring another bout of Hit-Point loss and loss of attackers to flip-retaliation defence duties.
I could have made things easier with Artillery, but I really wanted to experiment and have some fun with my Sipahi. See just how good they were(n't). And this is why everyone recommends Artillery to just farm those Armies ASAP, because the numbers count for diddly. And from a game point of view, the player likes to actually notice a reward for achievement, likes to have some sense that they have performed well and gained an advantage after 200 or whatever turns in a game, that the numbers actually mean something.