back to some boolean algebra :-) http://en.wikipedia.org/wiki/Boolean_algebra
A = shouldInvokeRemoteTxCommand, B = prepareSent, C = isOnePhaseCommit, we have:
A && !(B || C) == A && (!B || !C) == (A && !B) || (A && !C) 

In other words, your condition is equivalent with:
(shouldInvokeRemoteTxCommand && !prepareSent) || (shouldInvokeRemoteTxCommand && !isOnePhaseCommit)
- the second part has been in place and it is obviously correct: shouldInvokeRemoteTxCommand && !isOnePhaseCommit
- the first part doesn't make sense to me though. Why NOT send a rollback if the prepare has been sent? If anything I think it should read: "shouldInvokeRemoteTxCommand || prepareSent"