(7)
1. Не нужно гонять процессор из одной процедуры в другую без лишней необходимости. Это затрудняет отладку.
2. Если бы вызов процедуры был в нескольких местах, и в каждом случае надо было бы проверять это условие, то целесообразно было бы вынести его в процедуру, чтобы не дублировать код. Дублирование кода - один из признаков говнокода. Но, это не наш случай.
3. Если текущий контекст отличается от контекста вызываемой процедуры, то для проверки условий понадобится передача дополнительных параметров. Что тоже затрудняет чтение, да и вообще не айс
4. Чисто визуально первый вариант проще читать. Меньше уровней вложенности