Is it safe to program a Pololu 3pi robot from Sparkfun without batteries, using only a power supply from the AVR programmer?
Looking at the manual I would say it's probably not a good idea.
It may draw too much current for your programmer (you would have to verify this yourself) and also looking at the schematic there is a linear regulator that may not like having Vcc on it's output whilst nothing is on it's input.
Unless you can confirm that neither of these point would cause possible problems, I would stick with (fully charged) batteries. Especially given the numerous warnings saying losing power during programming may permanently disable the 3pi.
Note on the circuit diagram above (which I added to your question) that as well as what Oli says re the programming Vcc being applied to the output of an unspecified regulator (not usually a marvellous idea) there is the issue of supplying power to "Vboost". This is not needed for programming but it is needed for normal operation.
Unless you can be sure that the robot will not be upset about being "dead in the water" upon exiting programming mode to the extent that it does itself an injury then it's a very unwise idea. See below for why battery is needed for normal operation (but not necessarily for programming.)
I have added a tasteful red line to the circuit diagram to show the connection from programming_connector_Vcc to the normal source of Vcc and a pretty Octarine line (maybe it's Orange) to show the locations in which Vboost is generated (top) and used ( 5 x "Reflectance sensor" LEDs and the motor driver IC.)
Vboost is supplied from a switching regulator which is powered by Vbat, and Vcc (which you would be feeding) is supplied FROM Vboost. So if you feed power to Vcc only there is no way for the Vboost switching regulator to obtain power. So Vboost will probably be zero and at most may be backfed through the 5V regulator from the programmer Vcc. This would certainly disable the reflectance sensor drive and would very probably disable the motor drive IC and at best may leave it crawling wounded (but with a blind robot to drive).
SO the programmer may work but the robot wont and if the system tried to leave programming mode and eg initialise normally, it may do something else instead.