es gibt solche und solche bootloader. mache werden per taster aufgerufen, manche über RS232 und mache wiederum von dem anwenderprogramm. (http://www.microchipc.com/PIC16bootload/ und http://home.hiwaay.net/~jeffj1/projects/bootloader/ sind ganz gut )
du kannst die pins der RS232 dann theoretisch wieder als I/O benutzen, jedoch würd ich dir raten sie einfach auch in deinem programm als schnittstelle zum pc zu benutzen, z.B um statusinformationen zu übertragen...

ich würde bei dem icsp interface noch ne diode einbauen, so wie hier: http://sprut.de/electronic/pic/icsp/icsp.htm

mfg matthias