If you depend on a socket to program the MCU before soldering it into your circuit, you may find yourself in a bind, if you need to change or reinstall the bootloader or change fuses after soldering to the circuit.
I believe it is a good idea to include ICSP header in the circuit, so you can program it or update the program or bootloader while the MCU is in the circuit. Design your circuit so if you use the programming pins for other purposes, such as general I/O, they can be sufficiently isolated during programming. That may mean just using resistors that can allow the attached device to be overpowered by the programmer, or include solder-bridge pads or jumpers.