Ну, если честно, я сделал так, как мне было удобнее. Если посмотреть
в test12.cpp на сгенерированный исходный код силуэта, то видно, что
там есть переменная-переключатель. И номер для нее где-то должен
присваиваться. Почему бы не в начале ветки ?  А к номеру должно
прилагаться какое-нибудь слово, например - ветка (кстати, слово там
может быть любым, даже просто буква N, само слово я специально не
проверяю).
По поводу goto - был бы противником, писал бы на Обероне. Кстати,
переход от заголовка одной ветки к заголовку другой и выполняется
по goto. Тут дело в другом - у меня перекодировка каждой ветки
выполняется отдельно. Это сделано с целью улучения читаемости
исходного кода. А затем перекодированные по отдельности фрагменты
опять собираются вместе и замыкаются в цикл с использованием
пееменной-переключателя. Так что в этом смысле мое решение применить
переключатель диктуется той логикой перекодировки, которую я применяю.

Еще раз могу повторить - я не возражаю против обсуждения деталей и
внесения исправлений. Но сейчас, мне кажется, что главный вопрос -
правильность и надежность работы алгоритма перекодировки.  А вот на
эту тему замечаний пока нет.