Great discussion however, Burt, ICMP is the packet type (echo and echo-reply) that the UTILITY ping uses. Vendors implement ping with slight differences. For instance, some vendors put icmp packets (layer 3) in a UDP wrapper when implementing ping. Others don't. The loopback test was considered so important that the designers of the IP address space "accidently" blew away an entire Class A block just to implement the test. Because it is used to check the TCP/IP protocol stack install, vendors implement that check with a ping loopback command or a ping 127.0.0.1. If your stack is pooched the test fails. Vendors also link the test to the NIC so L2 and L1 can be checked with loopback circuitry. Because the Application layer functionality for the TCP/IP stack is included in the loopback check and because the top three OSI layers map roughly to the Application layer of TCP/IP, for CCNA level work, Cisco courseware and classes teach ping loopback as testing all OSI layers.
CCNA tries to make complicated concepts black or white. Realistically, as you do more research, you find many of the things that are taught as black or white are actually shades of gray. This actually makes it more difficult for someone with lots of experience and knowledge in the "real world" to pass CCNA exams because you may know too much!!!!
Regarding ARP. The RFCs for arp don't indicate what layer of OSI it lives at. The IEEE Ethernet standards do not included ARP as part of the standards. ARP is a binding protocol that glues l2 and l3 addresses for communication within an ethernet LAN. ARP is carried over a L2 frame, but it uses an ethertype of 0806xh rather than the usual 0800xh for IP packets. I've had many discussions over the years with Cisco, students, instructors and vendors about where ARP fits. OSI is a very old model and it really isn't a very good reference for much of what we do. Remember, for CCNA, Cisco puts routers at L3. However, can't a router do access lists? Those go up to L4. And a router can now do firewalling with the right code. Firewalling is considered L1-7 for CCNA.
But you gotta start somewhere. The more you learn, the less you know.