Am I able to burn a bootloader and program with an AVR ISP?
What on earth does the AVR ISP actually do?


It allows read/writes to all the memory areas of the AVR chips (flash, eeprom and fuses). The "IS" in ISP means "In-system": you do not need to remove the chip from the circuit to program it (in the old days there were "outboard" programmers, you had to pull the chip from your circuit, insert it in the programmer, then insert it back in your circuit... tedious!)


  why can it not also program the device (as people seem to never instruct, even if that makes it simple)


It can! You can absolutely and safely go without any bootloader on the chip. Just make sure that the chip is configured to boot from address 0 instead of booting from the bootloader area. On AVRs, this is configured by fuses.

avr-gcc is the compiler, which turns C/C++ program into machine code (ultimately stored as a .hex file).

avrdude is a "program loader", responsible for reading/writing data to the chip through a programming interface (such as various flavours of ISP programmers). Here is the avrdude command for writing FIRMWARE.hex to an atmega328P chip through an AVR ISP mkII programmer hooked to the computer by USB :

avrdude -V -p m328p -P usb -c avrispmkII -U flash:w:FIRMWARE.hex:i


  Why does the ISP also allow you to connect to a computer via USB, for power? for custom boot loaders? Can it even "program" a compiled program in to flash via something such as avr-gcc (assuming the arduino IDE does things that required the bootloader)


If you need to flash a chip, you need the data to go from the computer to the chip, right? Not surprising then that the ISP programmer is connected to both the chip and the computer.

I suggest you to read some non Arduino-related tutorials about AVR programming. Get back to basics. Keep in mind that the way things are done in Arduino land (send the program through a USB->serial chip to a custom bootloader running on the chip) are not the norm. The Arduino stuff is a solution to a specific problem (how can you get people to send programs to a chip without a programmer?), but for your project and your own sanity, you do not have to replicate it. Just buy a $25 programmer, put an ISP socket on your board, and forget for a while about USB, FTDI chips, bootloaders, etc...

As for bootloaders, they will be required only when you want your system to be field-upgradeable through another means than the ISP programmer. There are serial bootloaders (like the Arduino's), SD-card bootloaders, MIDI bootloaders, USB mass storage device bootloaders, etc.