I there are some other files that need the hostname /etc/net/*/hosts - might be related.
From SUN FAQ 3477
Solaris systems try to set their hostname through the "dhcpinfo" command
when they are booted as DHCP clients. The "dhcpinfo" command tries to
obtain the hostname for the client from a DHCP server by matching the
client's MAC address with a hostname entry in the DHCP server's network
client table. A Windows NT DHCP server usually does not have a network
client table since the hostname of a Windows client is stored locally.
Hence, a Solaris DHCP client will get no reply from the Windows NT DHCP
server to it's "dhcpinfo" command. If the Solaris client is configured
to use DHCP and the DHCP server fails to respond to the "dhcpinfo"
command, the client's hostname is set to "unknown" by the startup scripts.
We may work around this problem by making some modifications in the
system startup scripts as shown below:
1. For Solaris 2.6 and Solaris 7 Systems.
Edit the file /etc/init.d/rootusr and change the line that reads
hostname=`/sbin/dhcpinfo Hostname`
to
# hostname=`/sbin/dhcpinfo Hostname`
hostname=`shcat /etc/nodename`
uname -S $hostname
Save the file and reboot the system. The system's hostname will be the
entry in the file /etc/nodename.
2. For Solaris 8 systems.
Edit the file /etc/init.d/network and change the line that reads
"dhcp"

hostname=`/sbin/dhcpinfo Hostname` ;;
to
# "dhcp"

hostname=`/sbin/dhcpinfo Hostname` ;;
"dhcp"

hostname=`shcat /etc/nodename` ;;
Then, edit the file /etc/init.d/inetsvc and change the line that reads
hostname=`/sbin/dhcpinfo Hostname`
to
# hostname=`/sbin/dhcpinfo Hostname`
hostname=`/usr/bin/cat /etc/nodename`
Save the files and reboot the system. The system's hostname will be the
entry in the file /etc/nodename.