A DMZ has a WAF, but the web servers behind it have public IP addresses too; only the DMZ firewall stops the internet from reaching them directly. Why is this configuration unfavourable?
Because the WAF is then protected by a single rule. If the firewall is misconfigured or has a bug, the web servers can be reached directly from the internet and the WAF is simply bypassed.
* With public addresses on the servers, one firewall mistake opens a path that never touches the WAF. *
The design looks equivalent on paper, since the firewall still says internet -> waf: allow http(s) and internet <-> dmz: deny all. The difference is how many things must go wrong before an attacker reaches a web server. With private addresses, a firewall error alone is not enough, because there is still no route to the server. With public addresses on web server A (ip2) and web application B (ip3), the servers are one wrong rule, one firewall bug or one temporary "allow any" during troubleshooting away from direct exposure, and every request on that path skips the WAF's inspection.
Tip: ask "what has to fail for this to break?" A design where one component's mistake defeats the whole protection is fragile, however correct the rules look today.
Go deeper:
DMZ (computing) — Wikipedia — single- and dual-firewall DMZ designs and what each one relies on.
Defense in depth (computing) — Wikipedia — layering controls so a single failure is not fatal.