Aha! The problem is that "ifconfig" doesn't return anything containing "inet addr:" in Fedora 17. The output looks like this:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.2.13 netmask 255.255.255.0 broadcast 192.168.2.255
inet6 fe80::d6be:d9ff:fe92:1df5 prefixlen 64 scopeid 0x20<link>
inet6 2001:470:1d:429:d6be:d9ff:fe92:1df5 prefixlen 64 scopeid 0x0<global>
ether d4:be:d9:92:1d:f5 txqueuelen 1000 (Ethernet)
RX packets 15939189 bytes 11636881674 (10.8 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 19
So it falls through to "host `hostname`", which isn't available because I need Puppet to configure freeipa-client for me, which it struggles to do. So I guess I have to hardcode the DNS server into my kickstart and then let puppet take care of the resolv.conf after that.
What about F17 sites that don't use DNS and instead rely on host tables? This will fail completely, won't it?