Actually, it kinda makes sense..
That's strange, because I've just successfully paired a Jawbone earpiece with my Xperia Z3 (running Android 6.0.1) with location disabled. Maybe it's manufacturer-specific?
p.s. Please keep responses on-topic.
Ahh.. the document you posted is for gaining access to the mac addresses of external devices programtically... not pairing a bluetooth device as Slug has done.
"To provide users with greater data protection, starting in this release, Android removes programmatic access to the device’s local hardware identifier for apps using the Wi-Fi and Bluetooth APIs. The
WifiInfo.getMacAddress() and the
BluetoothAdapter.getAddress() methods now return a constant value of 02:00:00:00:00:00."
This actually makes sense from a users point of view, previously.. even if you hadn't given the app permissions to get your location, it could work this out by seeing which devices you can see (wifi hotspots, bluetooth beacons) and then link back to a database and work out your location. Even if as a user you DIDN'T want it to know where you are.
Now they've closed that hole... If your app wants to scan for wifi enabled devices, or bluetooth ones for that matter, it needs to have the location permission...
I can see how this will cause confusion in the future.. but from a users privacy perspective this is actually a GOOD NEWS item, giving us more privacy and protecting us from big buisness.
"Note: When a device running Android 6.0 (API level 23) initiates a background Wi-Fi or Bluetooth scan, the operation is visible to external devices as originating from a randomized MAC address."
Which will also help cover tracks and stop user tracking in the mall/highstreet etc...