I dont see a reason why not to program over TAPI as it is one of the most supported API (you will surely get the driver for most of the providers), however you always have the option to program directly to the specific CTI interface of PBX system thus
making your integration provider specific, but this will also need a lot of effort considering most of such API will be unmanaged. Although if you have a TSAPI driver from the provider that will work just as well.