Using a boot-loader is totally optional. You can program the PIC in-circuit with
your device programmer, use a boot-loader, or move the PIC back & forth
from programmer to ICD circuit.

It makes no difference how you get your code into the PIC. Only that you use
the ICD/Compile button when creating your code.