I was looking to add Bluetooth connectivity to some embedded design, and I was surprised to see that all modules available have a complete protocol stack included, that (as I see it) seem to limit you in what you can do with it. Depending on what you want to do, you have to choose the right module implementing the profiles you need, and you'll talk with the module using fairly high-level commands.
I was actually expecting there was some basic modules taking care of only the physical layers (just "sending raw packets" over the air), and with which the upper stack layers would be implemented in software on a MCU (the current design has a powerful one running Linux available). This is what is usually done for USB, ethernet, and pretty much everything else. It seems to me that it would be much more flexible this way (you could even, let's say, create your own proprietary Bluetooth profiles). But unless I missed something, it seems it doesn't exist.
Even though I can accomodate with this, I was wondering why is it this way?