I have an a Leonardo also. One problem I see with it is because the USB/Serial is on the same chip that you program, it drops the USB connection every time it reboots. I end up with /dev/ttyACM0 and sometimes /dev/ttyACM1 depending on timing. With an ISCP programmer like this, I could use the Arduino IDE to upload code with the avr-isp instead of over USB serial, and avoid the serial port name bouncing around?
I assume the Leonardo and the Uno use the same ISCP (JTAG?) interface? It's just a different chip to compile to?