Возвращаясь к рестартам Z80, с которых понеслась волна - для них действительно можно найти куда более полезное применение, в особенности на системах где используется С с нативным С-компилятором (как на недоОС или например в UZIX). Нет никакого криминала, чтобы работать со всеми вызовами ОС включая расширения через одну точку/рестарт плюс далее по дополнительной таблице (не так часто процесс лезет в ядро), а вот куда действительно нужны однобайтовые коды вызова подпрограмм - так это в кодогенератор С. Посмотрите например код любого нативного С Z80 работающий с long (32 бита - это и IP и FAT и большинство прочих портов с "больших систем") - он очень плотно набит однотипными call, которые так и просятся под переделывание на rst. Тут на ровном месте и выигрыш по объему и по скорости будет заметный - думаю процентов 5-10 на ровном месте. Легко можно задействовать до пяти-шести rst даже оставив совместимость с CPM и UZIX (занимающие два первых рестарта).