I have a weak recollection that the I2C memory driver was not fully generic and might not work for reading too big buffer. Maybe the read operation is failing because of the i2c memory driver.
No, I do not think it is that low level, it is our code. There is a buffer where the data are read and this buffer has a limited size. ST i2c is usually quite bad, but for reading an I2C memory the hardware does not cause problems .