Посещение ветви else и будет признаком того, что цикл не был прерван оператором break. Но выход из цикла по return или raise никак не отслеживается. Только сам.
longclaps: согласен, но так как никаких сведений от автора не поступало, я взял простейший пример с обычным итератором. Ваш код, конечно же элегантнее.