Currently we decide which card profiles should be created based solely on the list of UUIDs supported by the remote device. This used to be accurate when having PulseAudio running meant all supported audio profiles would be registered with the local adapter, but things are a bit more dynamic now and only the null headset backend may be available.
This series also lays the groundwork for having a mechanism to disable certain Bluetooth profiles on specific products, based on DMI or device-tree ids. I am not entirely sure that mechanism is something we would want upstream, but I do need it downstream to avoid exposing a broken profile on a product where SCO connections don't really work (thus HSP / HFP don't work either). For the curious reader, that mechanism is implemented by the last two commits of https://gitlab.freedesktop.org/jprvita/pulseaudio/tree/bluetooth-disable-profiles-per-product.