In some applications, using an ICMP payload and getting a quote of the IP header + 8-bytes of the original packet back in ICMP error messages is part of the application. For example, traceroute utilises the fact that it gets part of the payload back in a ICMP TTL exceeded message to identify _which_ traceroute request was being responded to.
Imagine mailing somebody a letter with data; once they receive the letter they send it back. The information is stored within the postal system.