PIC chips from factory are shipped blank, except for an oscillator calibration, usually stored in the highest address. There is no "initial program". All locations are usually "all 1's" or "all 0's", either of which execute as a NOP.
If you buy a chip that is pre-programmed with a bootloader, then generally you do not use a programmer (e.g. pickit 3) to re-program this, you use the bootloader. The bootloader is designed to not erase itself.
Pickit 3 allows you to specify a range to be erased and/or programmed (usually pre-defined chunks/blocks). I am not sure if this works with all devices, but I know that some devices allow block erasing rather than whole-chip erasing. One caveat is that you may need to do a whole-chip erase to clear some configuration bits (like code protect). Good old PIC16F877 is a chip that supports 'block' erase and per-block code protection. Many many more support it too.
If you accidentally use a programmer to erase a bootloader from a PIC, you can use the same programmer to program the bootloader back onto the chip. You usually need only the HEX file.