The whole reason async is even a thing is due to slow, side-effect producing operations. Of course pure functions are easy to parallelize.
I don't think folks so much "shoe horn async where it is unnecessary" as the red/blue problem causes async code in most languages to spread.
Or by "async" do you just mean concurrent code? I'm reading "async" to mean lightweight coroutines or similar.