Не уверен, что тема в правильном форуме...
Просто способ, который сейчас часто применяю. Сильно связано с RETURN в Оберон-7.
## Код:
```
... операторы, определяющие значение a
a := ...
IF a THEN
  ... операторы, определяющие значение b
  b := ...
  IF b THEN
    ... операторы, определяющие значение c
    c := ...
    IF c THEN
      ...
    ELSE
      ...
    END
  ELSE
    ...
  END
ELSE
  ...
END
```

## Код:
```
... операторы, определяющие значение a
ok := a;
IF ~ok THEN
  ...
END;
IF ok THEN
  ... операторы, определяющие значение b
  ok := b;
  IF ~ok THEN
    ...
  END
END;
IF ok THEN
  ... операторы, определяющие значение c
  ok := c;
  IF ~ok THEN
    ...
  END
END
```

Ощущения (проверенные практикой) --- читабельность повышается. Работать с кодом много легче (порезан на независимые последовательно идущие куски).

Если кого волнует скорость (лишние проверки).
1) Да хоть и в ущерб скрости, пока не заметно. Главное читабельнее.
2) Не факт что в ущерб. См. след. два сообщения