It turns out that in x86-64 mode, address and operand size overrides are ignored by the processor. (Tested that on a real machine.) Even libopcodes gets this wrong...