It would only work for music; for video or games or anything else a large buffer would mean terribly unsynchronized and delayed audio. Humans will feel something is off with just a few tens of milliseconds of buffer.
There is. It's just not always large enough.
Modern audio systems actually do work like this, here's a good write up from PulseAudio about dynamic buffer sizes and resampling when a new sound comes in
I do not know how a2dp works and if it supports such buffers though.
Why isn't there some sort of cache on the earbuds that allows the device to send the packets to it and buffer as needed (for, say, music)?