Both would have their advantages. If a checksum (MD5, SHA1,...) of the file was used it would be much more reliable than Expires. On the other hand the HTTP header has to be read each time the file is required to check the ETag.
Short Expires in combination with a reliable ETag might be very efficient, but that is not up to us...