"env force_hostname=YES" has it's own pitfall of flip-flopping in the same
way, but that's your adminsitrative decision based on your network setup.
Can "env var=value" be part of the block guarded by an "interface ifN"
statement? On a multi-homed machine, there should be only one host name
and one can choose the interface from which it receives (and acts on) the
information.
I only tried DHCP configuration of multiple interfaces a long time ago.
I found it wasn't a workable solution for me, but I forget what the
specific problems were. I think it was my NAT router and I wanted the
bulk of the network setup (and ancillary information like name servers
and ntp servers, etc.) to be taken from the internal interface, and only
the public IP and default route set for/from the external interface.
Perhaps I'll revisit that when I don't mind the service interruption.