Well I thought it was an awesome movie if you look at the trilogy as if it was one film. Individually you'd have to say that the original was best because it relied on character and relationship development more than the development of the story (and that's what I tend to enjoy most in books etc), but the 2nd and 3rd ones tied it all together nicely I think.
The Battle of Zion was incredible, and I liked those mechanical gun things that they sat in after I'd got used to them.
I also really loved the fight between Smith and Neo at the end.
Still a couple of cheesy moments. The speech to the walking gun-bots, and the final scene with Trinity where she went on-and-on.
Anyway, here's my thoughts on it, long but a little bit different to yours in certain respects (Spoilers)...
Look at it all from the standpoint of the Oracle, as I think the trilogy is really a battle of wills/whits between the Oracle and the Architect. The Oracle is playing it like a game of chess, moving her pieces, Neo et al, to force a way of making peace between the Machines and the Humans. I think she said in the film that she wants the same thing as the 'freed' people... Peace.
In order to do that something needed to be created that threatened the very existance of the Matrix and that was Smith, who was created when Neo became 'the One'. The machines couldn't just kill him as if he were a person because he had no real physical existence outside of the matrix, although it seemed that he could bridge the gap between the Matrix and the real world (Bane). I'm assuming therefore, that when he took over people he also controlled their minds in the physical world. If the Matrix wanted to stop Smith it would have to kill all the people supplying it's power which would destroy itself.
The question then would be why didn't the Matrix just bump off the first couple of people that Smith took over? (by unplugging because when it tried to boot him out with the agents, Smith just consumed them). Maybe Smith spread too quickly for it, which is the only reasonable assumption imo. Another suggestion would be that Smith also had a presence in the Matrix that transcended a physical mind, much like the Architect himself? But then when any Agent or component of the machine world wants to get into the Matrix (other than the Architect) they take over the mind of a person hooked into it. Having said that the programs, rogue or otherwise, do not, so maybe that is another reasonable assumption then? [just a train of thought, and actually it's my new theory as the 'Smith too quick' is just rubbish unless he had enough people to offer a serious threat to the power supply of the machines?]
Anyway, Smith changed into something, a virus more deadly than anything before it, that was a threat that the Matrix couldn't stop without trusting itself to Neo and the freed humans (remember in the 2nd one that one of the themes was that the machines and the people rely on each other to exist.)
The question of Neo failing wasn't really an option because if Neo had failed then it would have been the end to both Zion and the machines because Smith would control it. But Neo could not fail because Smith needed Neo for his own existance. No Neo, no Smith (could it also be true then that no Smith, no Neo? yes it should be.
)
Backtracking a bit to the end of the first one now, when we see Neo become 'the One', it was at that very moment that Smith turned as well. I'd say that Smith would be created every time that 'the One' would show up. But in the past Neo would choose the door to reset the Matrix, he would then die and the Matrix would reload itself and Virus Smith would vanish. Because Smith was the balance to Neo's anomoly in the equasion.
But in choosing the 'other' door, Neo threw all that up in the air and forced the machines hand. Or, should I say, that the Oracle forced the machines' hand? Think about it why would Neo choose the different door? It had to be a pretty powerful emotion that would make him do that. Love. Maybe the Oracle played matchmaker between them by suggesting to Trinity that she would fall in love with 'the One', and how could Neo resist?
It was a gamble, but it was realistically a win-win scenario. In choosing the other door though a whole new set of choices presented themselves which not even the Oracle could see beyond. The Oracle's choice I guess was to sacrifice herself to Smith in the hope that Neo could figure it out.
The Oracle had to give herself to Smith. She had to show Smith what he 'wanted to see' in some way and it would be no use just telling him he had to see it. At the moment he consumed her she showed him that he would defeat Neo and that would lead him to believe that he would control the Matrix and blinding himself to the fact that without Neo he wouldn't exist. Risky because had he seen that then he wouldn't have gone after Neo and the Oracle would be no more.
My theory behind this stems from the fact that in each and every Matrix film someone says that the Oracle 'showed them what they wanted/needed to see'. The Oracle was on their side so their trust lead them to believe what she said.
But anyway the Oracle played her hand and forced the machine into check-mate.
Well, you're all probably bored now so I'll leave it there.