The DNSs that you configure on an interface are the DNSs that are available to the router through that interface, not the DNSs that should be used by the devices connected to that interface.
The wireless interfaces need to latch to a bridge.
Thanks @egc and @eduperez for your help. Since I had set external DNSs, I believed that such DNSs were pushed to clients via DHCP as they are. But I was wrong. The DHCP actually uses the router's DNS resolver that, in turn, uses the configured DNSs. So allowing port 53 on Firewall fixed.
Two side questions:
Do I really need port 53/TCP?
I haven't set up a bridge. Currently, the guest network works. I can do it with something like:
uci set network.guest_dev="device"
uci set network.guest_dev.type="bridge"
uci set network.guest_dev.name="br-guest"
and then I can attach it to the interface's device
uci set network.guest.device="br-guest"
Do I need it? What if I do not use that bridge and I simply rely on my current configuration?
Normal DNS traffic is UDP but there are exceptions, DNS has always been designed to use both UDP and TCP port 53 from the start, with UDP being the default, and fall back to using TCP when it is unable to communicate on UDP, typically when the packet size is too large to push through in a single UDP packet.
so the answer is Yes
Without a bridge it is a hit or miss on some routers/configurations so I would certainly make/use a bridge, although in your case it appears to work.