То, что сейчас не понятно, не значит, что не нужно вообще ничего делать.
Вот, например, наличие цикла Дейкстры и вообще структурных конструкций делает прогу более модифицируемой, чем при наличии конструкций с выходом из середины. И видимо, более надежной. И, кстати, возможно, что более читабельной. Осталось придумать метрику, которая показывает эту разницу, и во сколько раз. Метрика, естественно, эвристическая. Потом ее уточнять в реале.
Меры сложности - они в первую очередь, количественные. На основе количества разнообразных элементов в программе. И, кроме того, на основе статического и динамического графа программы.
Далее - опять эмпирический закон требуется наблюдать: насколько влияет сложность на другие характеристики.
Это и есть первые шаги науки в ИТ - первоначальные наблюдения, измерение и классификация.

Интересно направление Model checking - я в литературе книжку переводную приводил. Шалыто в книжке Автоматное программирование упоминал, что основное наблюдение в этом направлении: невозможно доказать правильность проги, если она с самого начала не строится под доказательство. Это как с другимихарактеристиками. Например, если изначально не строить программу с целью облегчения модифицируемости, то  потом это уже невозможно сделать. Переписать заново проще.