EIP-5920: PAY opcode

The EIP execution spec says

  • Pops two values from the stack: addr then val.
  • Charges the gas cost detailed below.
  • Exceptionally halts if addr has any of the high 12 bytes set to a non-zero value (i.e. it does not contain a 20-byte address).

I am curious about the order of operations between charging the gas and exceptional halting when address has non-zero high 12 bytes.

One of the components of the gas cost is if the to_address is warm or not and if the address has high bytes set to non-zero values, performing this check does not make sense. Would it more sense to provide more clarification on this?