Hi Michael,
One way you can get around this is to use the inventory_hostname variable in the dest= along with flat=yes, as follows:
- hosts: all
gather_facts: no
tasks:
- fetch: src=/etc/hosts dest="/tmp/{{inventory_hostname}}/" flat=yes
As long as the inventory_hostname is actually a hostname and not an IP, this should do what you need. Beyond that, you can open a feature request PR on ansible-modules-core to allow using the inventory hostname instead of the connection address, when available.
Hope that helps!