It's mostly a problem for writing re-usable packages - if you need to provide a function that can be used in both sync and asyncio, you can't easily just "detect if I'm in an ioloop", and end up writing a lot of duplicate code. Or perhaps I haven't figured out the best way yet