Yes, it is really the case. Here's a pertinent ARP dump for a Cisco modular router (with two built-in ethernet ports) populated by one additional module (with four built-in ethernet ports);
#sh arp
Protocol Address Age (min) Hardware Addr Type Interface Internet xx.xx.xxx.243 - f872.eae5.3301 ARPA GigabitEthernet0/1 Internet xx.xx.xxx.244 - f872.eae5.3301 ARPA GigabitEthernet0/1 Internet xx.xx.xxx.245 - f872.eae5.3301 ARPA GigabitEthernet0/1 Internet xx.xx.xxx.246 0 04bf.6db5.ae76 ARPA GigabitEthernet0/1 Internet 172.18.0.1 - f872.eae5.3300 ARPA Vlan18 Internet 192.168.0.1 - f872.eae5.3300 ARPA GigabitEthernet0/0 Internet 192.168.51.1 - f872.eae5.3300 ARPA Vlan51 Internet 192.168.54.1 - f872.eae5.3300 ARPA Vlan54
The first, all-identical, part of the router's public IP address block has been manually obfuscated with x. The 04bf.6db5.ae76 originates with the modem, not the router. As you can plainly see, Cisco IOS doesn't use ARP for intra-router operations. Also, it's too much of a coincidence for a generic modular router to end in 3301 while a random module ends in 3300. Ergo, Cisco IOS apparently creates ARPs ad hoc, as needed. In other words, ARPs are not "burned" into flash memory at the Cisco factory. Danke,