For awhile after I started working with PICs (maybe until around 2000), I used a PIC programmer I'd designed and built myself; the only thing I needed to worry about when one wanted to program a new PIC was how much memory it had. Otherwise, all of the EEPROM PICs were programmed one way, and all of the 14-bit UVPROM/OTP PICs were programmed another way. When the 12Cxx parts appeared, their programming was almost like the 14-bit parts except that the config fuse was handled differently. Having all PICs use a high voltage on MCLR as a signal to enter programming mode, whether or not they actually "needed" that voltage, meant that the design of the programming hardware could remain the same. Further, having the MCLR circuitry be high-voltage tolerant meant that selecting the wrong batch file when attempting to program a part would be unlikely to cause damage (except when using an OTP part, when it permanently store the wrong program).