Why is ARP needed in a host - router system if the router already has list of addresses it assigned using dhcp? The hosts are assigned IP address by the router using dhcp. So, the router has a list (mac addresses) of all the hosts that are directly connected to it as well their ip addresses.
Now if a packet comes from outside, the router must be able to find the destination mac address from its logs. Then what is the need to use ARP in such a case (hosts connected to router)?

The only time I see an use of ARP is when router has to find new routers. Using ARP allows it to find new routers as well as to force a more rigid use of longest matching address method if needed. However what is the use of ARP during "router to host" packet transfer?
The fact that the router has the list does not help when computer A wants to talk to computer B, because neither of the two has the list.