I think we need to clear up what both those chips to.
You can program the 2560 with the ICSP header - yes, but every time you want to program it you will need to use that 6 pin connector.
The 16u2 is loaded with a special firmware that allows you to connect it to a USB port and it will show up as a USB device. This is how your normal Arduino Mega works. The 16u2 is loaded with USB drivers and such, allowing it to be recognizable on your computer. Then when you click upload on the computer, the 16u2 will program the 2560 via RX/TX. There are plenty of articles that explain that process in depth.
The reason you need an ICSP header for the 16u2 is so you can load the USB bootloader onto it to allow it to interface with a computer.
The reason you need the ICSP header for the 2560 is so that you can load it with its own initial core bootloader, which will then allow it to be programmed via RX/TX from the 16u2 via USB.
If you only put the ICSP header on for your 2560, sure, you can use the 2560 like a normal Mega (MINUS the COM PORT readout!!), you'll just need another Arduino to program it every single time. At this point, your 16u2 will be worthless and not do anything unless you have alternative methods to load it with the USB bootloader.
If you are going to be putting the 16u2 on your PCB, might as well include a method to program it and add USB connectivity! Also you'll want the 16u2 working so that you can pull up com ports for debugging.
Best of luck