but how will the client get the correct hash to compare to, and how will he compute the hash of the downloaded copy, on an untrusted machine (which is the assumption that justifies using a Trezor)?
We'd like to have each firmware release (and its hash) signed by independent set of people. Quite a few people already contacted us wanting to do that, but we are not yet there. The building and signing process is documented here:
https://github.com/trezor/trezor-mcu -- but we need to prepare the place, where people will upload their signatures so we can show them in Firmware Update dialog.
myTREZOR and TREZOR already show a hash of uploaded firmware, this signing process is just to justify the hash legitimacy and to prove that the provided firmware was indeed built from the provided sourcecode.