Просто он сделал switch как раз через табличку и IJUMP что просто заняло Z аж до момента начала работы - итого ему пришлось дальше с Z дёргаться туда-сюда. avr-gcc тоже почему-то дёргается, хотя у него Y постоянно под стековый кадр не занят и он мог бы обойтись только Y и X (что более странно - он реально задействовал Y и Z!). Однако исходному варианту с goto это дело уступило где-то по 15% в объёме и скорости для classic AVR и на 10% для mega AVR.
А что касается сопровождения - то мне варинат с перемешанным switch-do-while не кажется более запутанным, чем исходный с переходами.