BT 4.0 was a chance to start over, and it will help a lot, in time... BT 5.1 will likely finally bring stereo audio over BT LE, with a cleaner spec than A2DP is. But once again, until all the EDR (classic) devices out there are trashed, BT classic remains a huge pain in everyone's rear and a mandatory thing to support. How soon is that? More than 10 years from now! Why? Cars are a major BT use case and many still ship with BT 2.1 car kits. People do not replace cars as easily as headphones.
source: i work on this currently
You have my deepest condolences. Thank you for your sacrifice.
USB doesn’t really care what you send over it after a few base class types, BT does.
BT Classic is really bad in the type of designed by committee way. BT Low Energy is alright imo, but intentionally limited (no SPP, 16bit SIG approved GATTS, a 5.0 feature doesn’t “need” to fully support 5.0 in order to be called a BTLE5 device). I think the BY SIG is too big to get out of its own way.
The Linux source for it is even less approachable.
Actual Bluetooth kernel code can be found here: https://github.com/torvalds/linux/tree/master/net/bluetooth
IMO it is quite well organised and readable.
[1] The BT5 core spec is freely downloadable. It is a 25MB PDF with over 2800 pages. That's just the core, there are other specifications that layer on top of it.