To prevent my hostname from being set by DHCP, I have this:
kenyon@devildog ~ % grep -i hostname /etc/hostconfig HOSTNAME=devildog.kenyonralph.com
In System Preferences, Sharing, Computer Name should be set to the FQDN. The .local name will just be the first part.
hostname should return the FQDN (devildog.kenyonralph.com), and
hostname -s should return just the first part (devildog).