Thanks for your snippet -- I was actually trying to come up with my own re-write as well as an exercise.
The array does seem silly, but I think I know why they did it -- the SimplifyExponents function was written for problems where there is more than one variable, each of which has its own exponent. I think this is also why the exponent is stored in an array.
Anyways thanks again for the help, and I promise I'm using PGML for everything. :)