Нет, ну если так поставить вопрос — против "алгоритмического программирования" вообще сложно что-либо возразить :)
Асинхронность, как сами понимаете, бывает разная. На нижних уровнях это бестактовые схемы, асихронные выч. ядра. Далее — GALS. Далее мы выходим за пределы кристалла и там свои вопросы. Везде используются свои подходы.
Но на самом деле, не всё программирование алгоритмическое. Когда мы работаем с вводом/выводом в широком смысле (даже ячейка памяти), это уже не алгоритмы, а процессы. И на этом уровне работает большинство программистов.
Но, всё равно, полезно, мне кажется, знать особенности и возможности чисто алгоритмического (функционального) подхода, в котором сложностей много меньше, чем при программировании с процессами. В большинстве сценариев процессы не нужны. И полезно, мне кажется, уметь избегать их возможности. Хоть на Си программируя, хоть на Haskell.