Доказать отсутствие race condition достаточно просто: нужно перечислить условия, при которых race condition гарантированно не случается и доказать соблюдение этих условий. Непонятно, в чём тут логическая ошибка.
Не нужно. Нужно формализовать модель памяти, отношение happens-before или чего-то такого, и сформулировать достаточные условия отсутствия race condition.