OK, I finally managed to figure out what the heck was up here.
The bottom line is that :
a) the firewall closed the incoming https port on the external ip
b) the httpd.conf WAS NOT LISTENING to the external ip AT ALL
I don't know about the "why" - I am going to submit to bugs@ - but it looks like when I changed this server from "server mode" to "server & gateway" mode, the httpd.conf wasn't rewritten to take into account the additional, external IP address. And as for the closed https port on the firewall... could someone with a 5.6 server in "server & gateway" mode do a :
/sbin/iptables --list --numeric | grep 443
and report their results? I now get :
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
denylog tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
because I added in the top rule to the firewall.
Bloody weird business, but as ever a great learning experience...
the precis being, if your firewall rules says "ok" and your portscans say "not ok" - check there's something really, really listening on that port.
Seems obvious in retrospect - and in fact it's what Charlie Brady was saying ("Find out why apache isn't running. The answer will be in /var/log/httpd/error_log.") in effect, apache wasn't running (well, it was, but not on the external IP)
So, thank you Charlie - you told me so

Cheers,
G