Некоторые сложности перевешиваются удобством. Делается то один раз, а используется всё время. Естественно, это когда интенсивно меняется программа - тут уж сами должны считать что затратнее. Конечно, если есть эмулятор - это, в общем то, излишнее.
Касательно софтового UART - немножко муторно конечно. Нужно суетиться и считать такты. С 8080 я не делал, делал на Z80 - ну а какая разница? Z80 4мгц - 9600 без проблем, на 8 - 38400, с ухищрениями - 76800, выше не пытался. Это ввод/вывод на терминал - при загрузке же вообще никто не мешает.