I would say yes, and if you are working with BLE, a lot of the time you have too. Imagine building some hardware that interfaces with an app and connects via BLE. Maybe the hardware could have two different physical pieces that exchange data, as well as handles and responds to user interactions. You need to have complete control of those transactions if you are thinking of a product that the public will use. In general, the larger projects we worked on, we had to build our own protocols if we also were developing the hardware/fw.