If you were able to run a tunnel between rtrA and rtrD, it is at least that you have connectivity between these two devices loopback address.
You shouldn't have to build a tunnel between A and D to get connectivity. As long as you have a dynamic routing protocol (or static) carrying subnet information from A to D and vice versa, it should be ok.
Before building the second tunnel, did you check that the subnet connected to host B was seen on router A and subnet connected to host A was seen on router D?
Hope this helps,
Regards,
Harold Ritter, CCIE #4168 (EI, SP)