Creo que esto resolveria toda duda:
Unlike previous PIC18 microcontrollers, devices of the PIC18F87J50 family do not use persistent memory registers to store configuration information. The configuration bytes are implemented as volatile memory, which means that configuration data must be programmed each time the device is powered up
En resumen el programa SI afecta en ese PIC los bits de configuracion.Lo raro es que acabo de realizar un programa en el MPLAB con este PIC y no genera codigo para eso.... Que es lo raro... Y contradice lo que dice el datasheet.Corrijo la declaracion de antes:
Al ser volatil, se guarda en las posiciones mas altas de memoria del PIC; por ejemplo el PIC18F67J50 tiene una memoria hasta 1FFFF , desde 1FFF8 hasta 1FFFF se reserva para los bits de configuracion, luego solo el micro lo carga.
Esto el bootloader deberia tenerlo en cuenta, si no lo hace podria borrar y cambiar los bits de configuracion. En resumen depende del bootloader.. Cambiar en ejecucion no veo que se pueda, pero de todas formas deberia ser omitido por el bootloader.