Normally when you launch your project , you don't have access to the programmer's pin . but you have access to USB , Serial Ports , Ethernet or even RF or GSM modules installed on your board . So you can upgrade your program via these tools without any need to manually open the box of your project and program via programmer .
For example if you have a GSM module on your board , you could upgrade your program through GPRS from far far away .
Apart from that sometimes in upgrading you just need to change one byte of your program . in this case maybe it isn't logical to load all the program for just a little change .
But if you have access to serial port for programming (in fact a bootloader) and don't want to program from the distance and time of programming isn't important , I think there is no need
Good Luck