My theory is that CX were interested in the B777-300, which, after all, they were the launch customer for. To operate a decent-sized fleet and thus justify their inclusion in the CX fleet, IMHO, they decided to buy some B777-200's. They have 5(? - or is it 4?) -200's and 7 x -300's. That's a fleet of 12, which is fair enough given CX's total fleet is about 65 aircraft.
Now, the A330 is interesting. They announced the A330 order before the B777 one, and they originally wanted 10 with options for 10 more. They were going to be the launch customer for the RR Trent engined A330. Now, for long, thin routes, the A340 makes perfect sense in combination with the A330, especially when both models are the -300, which share the same fuselage, pilot ratings etc.
CX needed the B777-300 to replace their B747-200B and B747-300 aircraft. In fact, dare I say it, because of CX's requirements, the 773 is made the way it is, being part of the team etc. Boeing hadn't really offered the -200ER versions until CX was committed to the A340-300E.
My prediction for CX is that the B747-400 will be replaced by the A340-600, of which it is looking more likely it will be the launch customer if Virgin defers and the B777-300ER will also be ordered thus leaving them with 2 aircraft types (B777 family and A330/A340 family) and some of the lowest costs in the business. I think this dual A330/B772 philosophy will actually in the long-run bring more cost-savings to CX because both products have possible replacements for the 744.
M88, 722, 732, 733, 734, 73G, 73H, 742, 743, 744, 752, 762, 763, 772, 773, 77W, 320, 332, 333, 345, 388, DH8, SF3 - want