ISP circuit for AVR microcontrollers
It's used as a tri-state buffer (using the enable pin of the IC in the schematic).

Using a buffer is not necessary to the programmer to work, and you can find schematics for programmers that use just resistors, and some that use galvanic isolation. The intention
in the major part is to protect the parallel port.

In this case the IC could put the outputs in high-impedance state, more protection
when you are not programming (but that is asserted by the parallel port, if the programming
software crash, it would leave it in drive state).

One thing to note is that your schematic does not says if it uses the parallel port as the power source to the buffer like you write, in fact by the schematic it don't use and you can use a separate isolated power supply.

Where's one from much that don't use buffers, just resistors.

(source: elektroda.net)  

The correct pin out for the parallel port used in PC could be found here:
 (From Wikimedia)

There's advanced modes of parallel port in that the output pins go as inputs, but that's does not mater for that.