Для себя считай, что сервер в этом случае переписывает запрос так:
select :par1, :par2, :par1 from dual;
Ну а присвоение значений переменным привязки делает один раз, потому для всех случаев вхождения вызова
SEQ_USERS.NextVal он подставляет одно и тоже значение. А уж
SEQ_USERS.CurrVal так вообще ничего не остается, как вернуть тоже самое значение, что выдал
SEQ_USERS.NextVal