to bind a zone definition to an interface. This creates an entry in the internal.xml file in the /etc/firewalld/zones directory which I'm not happy with.

It is worth mentioning that our servers do not have NetworkManager installed as we configure all settings via ansible scripts and we use policy based routing extensively. These configurations are done via rule-<interface> and route-<interface> for both IPv4 and IPv6.

Anyone else seeing this change? Is this a change in behavior or a bug?

I'm also going through the same problem. When restarting the server, the firewalld is lost in zone settings. This started happening after I upgraded the system.
Currently Centos is in this version:
CentOS Linux release 7.5.1804 (Core)
Has anyone found a solution to the problem?

Sorry, I use only NetworkManager on CentOS 7. If you don't, then you should not use nmcli, nmtui, or nm-applet. (In fact, I would erase all NM-packages if I would not use it.) Anyway, I cannot tell how network.service and firewalld.service play along, if at all.