Можно и без кучи вложенностей - обработка ошибок. подключились - goto при ошибке
4 раза передали в цикле - goto при первой ошибке прям из цикла
....
Да, костыли do{...}while(0); и вынос цикла в отдельную процедуру решают, но ненаглядно. ИМХО конечно, красота дело индивидуальное.