Yup. To both questions. These days as all program memory is flash, and they have provided the facility to self-write the flash, most PIC's can use a bootloader for programming.
It is actually a little more complicated than that, but the changes involve newer chips. Of course, the program is flash, and that very same memory can be used for data and accessed indirectly with FSRn. However, that memory cannot be written during run time. It is from that perspective that I initially answered PerranOak.
However, I edited my comment on the chance that PerranOak had read the datasheet for newer PIC's (i.e, the 16F1827 he is using) and was wondering about another type of flash memory called HEF.(See my last sentence in previous post.)
When the enhanced mid-range chips were introduced, e.g., 16F1516/7/8/9 family, Microchip introduced what it called at the time, High Endurance Flash memory (HEF flash). That was memory in the program space that could be reprogrammed at run time just like EEPROM. It seems the "HEF" term has been dropped, and the newest chips in the enhanced mid-range evolution include what is now called "Non Volatile Memory" (NVM, see 16F18856 for example).
I have the eval board for that chip, but have not used it yet. Three things jump out based on a very brief review of its memory:
1) It appears Microchip has dropped HEF as an identifier and effectively combined EEPROM with it to give NVM. They both (if that is still appropriate) use the same SFR registers to save and read the memory.
2) Write cycles have been increased greatly.
3) Access also can be by FSRn. I have not studied the datasheet carefully enough to know whether FSRn can be used to write, but my guess it that it cannot do that. Nevertheless, being able to read with FSRn will save bank switching.