Это зависит от абстракций, которые применяет программист. Ведь если не пользоваться замыканиями, продолжениями... то зачем Scheme? :)
При работе со многими интерфейсами счет может идти на сотни наносекунд, один "зевок" — и все поломалось.
Надо понимать, что когда речь идет о параллельной работе с несколькими устройствами (например несколько АЦП и проч.) в реальном времени, то даже на чистом Си с прерываниями/DMA все обустроить правильно — это очень серьезная проблема.
Ну. Конкретно в picobit-случае, то она там из-за call-with-current-continuation. На базе этого сделана многопоточная обработка и сетевые взаимодействия. Я так понимаю, там основная цель была упихать как можно больше функциональности в ограниченную память. C SPI там работать можно, не знаю уж, насколько эффективно, не большой специалист по SPI, но показания двух термометров (вероятно, не самое требовательное устройство) вот вполне раздавать по интернету получилось. DMA было задействовано.