Does fq_codel without shaping really work?

This is a simple question.
Openwrt adopts fq_codel as the default qdisc and I'm wondering if fq_codel really works without shaping.

As so often, the answer is it depends... Say your router's 1 Gbps ethernet driver supports Byte Queue Limits (BQL) than fq_codel and BQL together will make sure that your ethernet driver's buffers will not cause significant buffer bloat! So if your router's uplink runs at 1 Gbps that will be nicely debloated. The same logic applies for ethernet interfaces pointing towards your LAN.

BUT by the same logic this will not help if your router's 1 Gbps ethernet interface connects to, say, a docsis modem with a 50 Mbps uplink. That is, the ethernet driver will still not build up a queue, but it will not stop admitting too much packets into the modem's (typically over-sized and under-managed) buffers. Also it will not really make a dent into the download bufferbloat (as there the critocal buffers live on your ISP's side of the access link*)...

*) Ingress shaping works, by adding an artifical bottleneck on your side of the link where you can control the queueing better, but this will only work until there is too much inrushing packets, that they also "back-spill" into the buffers of the ISP, but I digress.