Two reasons:
  1. I suspect that using "FOR...EACH" will generally prove to be a faster method than using an index because the method is only called once.
  2. Not all collections can be enumerated by index.

My query was a general one, not specific to this example so we should probably take further discussion over to General.