You already know this. Bufferbloat is a symptom and not the cause. Bufferbloat grows when there are (1) periods of low or no bandwidth or (2) periods of insufficient bandwidth (aka network congestion).
If I understand this correctly, just a software update cannot make bufferbloat go away. It might improve the speed of recovery (e.g. throw away all time sensitive UDP messages).
This is not my understanding.
Bufferbloat is caused by too much buffering in your host, the endpoint, and all intermediate nodes. As a result, they feed packets into the network faster than all of the intermediate nodes can pass them on. And then your latency-sensitive packet gets stuck at the end of those buffers because nobody across the network honors quality-of-service markings in the packet or even uses them honestly.
Dave can no doubt say more.