De-Luxis, ответ кроется в самом определении этого оператора
Цитата:
|
Возаращает false, если операнд может быть преобразован к true, в ином случае возвращает true.
|
Т.е. после первого применения ты получаешь (гарантировано) одно из двух значений false или true... Каков бы небыл операнд.
Ну а второе применение возвращает обратное true или false...