If your needs are met equally well by either version, then you don't have to worry about this at all.
If the synchronous versions meet your needs, then surely they're easier to understand and easier to use. But if you find sometimes you need more detailed control of the interface or operations, then you have to switch to the asynchronous versions. For example, I want to allow the user to click a button to abort an operation which might be in progress or might only be waiting for it to start, etc. ibstop() can abort an asynchronous operation but cannot abort a synchronous one.
If you predict that you might need the asynchronous versions someday, then it is better to start with the asynchronous functions in the first place. To switch from synchronous to as
ynchronous later will require some redesign and a lot of nuisance.