Why do caches fetch data to the right if the offset bit is 0 and to the left if it is 1 in a 2-word block
The two-word blocks are always aligned, and you can find where they start by zeroing the LSB. So the two blocks are always of the form $x0,x1$. So if you fetch $x1$ you also fetch $x0$, and vice versa. This makes indexing the block easy, since to find what block a word belongs to, you just need to drop the LSB.