What does it mean when i2c_smbus_read_byte() returns 0
As explained on LKML a return value of zero indicates that this is the byte received from the I2C bus.  It is data, not the length of data.

What receiving 0 from the chip means, and if the chip is or isn't supposed to be sending a zero is entirely contextual, essentially depending on what question it was asked.  

Since the code you depict appears to be a pass-through function that will be used for many purposes, the code can't really know if 0 is or is not valid data, unless you know for a fact that there is no legitimate situation with this chip in which any access could return data of value 0... which seems a bit unlikely, as 0 is actually an extremely common value for configuration or status registers and especially in multi-byte values...