The variable that the result is stored in has NOTHING to do with the types of variables on the right of the equal sign.
Correct you are.
Wire.read() returns a byte. What happens to a byte when you shift it 8 bits to the left?
What answer did expect to your question. "Integer promotion" or "the data is shifted to oblivion"?
I thought you were implying that the bitshift << 8 lost the data. The shifted byte is promoted to an int.
The result was an int, so there was not problem with the op's code in that respect.