> -- Илья Ермаков писал(а):
> В общем случае начальное установление инварианта может быть не таким же, как последующее его восстановление.

Но как правило оно именно такое же. Поэтому от ощущения дублирования кода (даже если это просто вызов функции) никак не отделаться...