This is useful if an app needs to know whether the phone is currently using a local network or a cellular modem to connect to the Internet, or to connect to local devices. Unfortunately Apple does not provide a basic API that provides this information without the SSID. (Although in early iOS 13 betas, there was a WiFi framework that might have provided such information. It was removed from later betas, however).
For Bluetooth, apps do not have access to BSSID nor peripheral MAC addresses from advertisements and connections. CoreBluetooth provisions a separate identifier (that is rotated) to prevent apps from gleaning much tracking info outside of the user's consent.
Your headphone update app more reasonably will need that permission, as its doing more than audio output.
Similarly Dropcam had a setup mode via Bluetooth, Google Home as well.
iOS should be doing audio device discovery and notifying the apps that request it when a new device is found. Whether you plug some headphones or use bluetooth or airplay or ... shouldn't matter here.
Spotify Connect is likely why they need a permission request... but the question for me is why they need it on app startup and not a one-time request when starting the Connect pairing process. Good security procedures would have the app requesting as few permissions as possible, for the shortest amount of time.
But other than that Bluetooth access had legit use cases, like the app I use to control my Bluetooth bulb. There are plenty of devices and accessories that use Bluetooth to communicate with the iPhone, therefore Apple provides means to access Bluetooth.