Цитата
А проблем от кэша - не так мало
Это, например, каких? С отложенной записью все понятно - надо принимать специальные меры, чтобы данные долелели до железа (актуально для управления периферией). Еще можно наступить на грабли с самомодифицирующимся кодом - тогда велком в мануал на ARM9 и читаем раздел Instruction Memory Barrier.
Цитата
В любом случае, эффективные алгоритмы стоят гораздо больше, чем кэши и бурсты.
Эффективные алгоритмы подразумевают под собой не только эффективность самого низкого уровня, но и выше.
Например, в реальной жизни рисование линии под произвольными углами встречается
намного реже, чем рисование рамок окошек

Следовательно, надо оптимизировать именно эти, вроде бы и крайние, случаи. А они как раз поддаются пакетной обработке (в частности, рисование горизонталей).
Печать символов тоже некисло пакетизируется - для совмещения надо будет прочитать только начало и конец строки, чтобы выполнить наложение, а середину вполне пачками можно копировать из регистров, как я изложил выше.
Про банальное копирование прямоугольников я вообще молчу - тут STM/LDM рулят нипадеццки.
Другое дело, что код, заточенный под выжимку всех соков, имеет вид, как говорят буржуи, "hard-coded routines". Со всеми вытекающими.