Nit-picking but 3.4.3 says:
The reason and and or are like control flow structures is that they short-circuit. Not only does and return the left operand if it is false, it doesn’t even evaluate the right one in that case. Conversely (contrapositively?), if the left operand of an or is true, the right is skipped.
If we define the propositions: $p$ as "left operand is true" and $q$ as "right operand is evaluated", then
left operand if it is false, it doesn’t even evaluate the right one in that case
can be written as $\neg p \rightarrow \neg q$ and
if the left operand of an or is true, the right is skipped
can be written as $p \rightarrow \neg q$, which is neither the converse nor the contrapositive of $\neg p \rightarrow \neg q$, or am I missing something?