I like that you can slurp a file in two lines of Python. And for someone just learning Python, the author's solution is just unnecessarily complicated. How many people learning Python are going to have a need to optimize file reading to this level?
And besides that, the author's solution is just good for one situation: when you want to read something line-by-line, which isn't always the case. For binary files, you may want to do something like this (untested code):
data = infile.read(256):
while data:
do_something(data)
data = infile.read(256)
Also, it seems like the author hasn't heard of enumerate: http://docs.python.org/2/library/functions.html#enumerate