advantages of single-leader (transactions) over multi-leader replication
I came across your question while reading the same book. 

I think the issue to consider is that in the single leader scenario, there is a natural total ordering as it can apply a sequence number per transaction.  It always knows "which happened first". It's hard or impossible to do this correctly in multi leader due to issues like clock skew. 

So I think it boils down to, does the system even know which happened first. 

Your "write if" suggestion is mentioned/used many times and I think is agnostic to single/multi leader. Write if is application level (the user probably has to enter what they think the old value is) whereas single/multi leader is probably not exposed to the user. In single leader, the write if would unambiguously avoid conflicts; the total ordering determines which operation happens first, and whichever gets there second will safely fail due to the write if. 

I think the advantage of multi is performance based; the advantage of single is "correctness/complexity" based.