Will try and go through these one by one:
Standard BT:
Apple: Apple will allow you to use the standard Audio protocols for free. So you could use A2DP to stream Audio, but that is about it. If you want to use SDP to transfer data you will need to get the authentication chip in your device.
Android: All the protocols are free to access.BLE:
Apple: BLE is free to use, but I am not sure how Apple will react to you trying to send large amounts of data over the protocol. BLE is very fast for small data (20 bytes) but slows down as you go bigger. A lot is going to depend on your accessory, but I believe Apple has a cap on how fast you can transmit. I have seen speeds of around 5KB/s.
Android: Same thing applies to Android, but you can go faster if your device supports it, I have seen speeds up to 10KB/s.MFI:
Apple: Supported by Apple
Android: The keys that Apple used for Airplay were reverse engineered a while ago, and you might be able to use them but its a gamble. There might be better libraries out there I am not aware of.
When it comes to Windows Phone, I don't know much accept that they did announce something about a BLE api at the BUILD conference that happened a couple of days ago.
Hope this helps!