Questão certinha e rica em detalhes...
De fato, a estrutura de identificação das mensagens por meio dos campos Tipo, Código e Checksum está correta nessa questão...
Ver fonte: http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redes-protocolo-icmp-internet-control-message-protocol/
Quanto à afirmação "o ICMP faz parte do IP.", explico: O ICMP é um protocolo da camada de rede, mas ele é encapsulado no pacote IP. É uma coisa meio singular, sui generis do ICMP... ele é como se fosse uma extensão do protocolo IP. Normalmente qdo um protocolo vem encapsulado ele fica acima da camada, mas nesse caso o ICMP está encapsulado dentro da mesma camada, no IP. Repito, ele é uma extensão da camada do IP e funciona como um protocolo de geração de relatórios de erros para o IP. São carregados como carga útil dentro do datagrama IP.