I've seen bufferbloat in many applications (including the X server).
Apps are just as prone to bufferbloat as the network.
Think end to end: you have to manage all buffers to control latency. The trick is figuring out how to manage them efficiently and correctly. This turns out to be subtle and sometimes hard, and there is some real research to do. It is particularly difficult when you are in situations where predicting the available bandwidth is difficult (e.g. wireless, graphics). One size never fits all.