I suppose the first eeprom register index should be 0 (like in arrays indexing), but I'd really like to be shure about that.
Did you ever stop to think about why the first array index is 0? The index is an offset from the memory location where the first byte is stored. Logically, then, it follows that the first EEPROM address is 0.
Ok. In fact, meanwhile, I did a few more attempts. Now things are clear.
No negative register indexes have any sense at all for eeproms. And yes, first eeprom register index is zero.
Using negative indexes, I was looking at garbage values taken from who knows where.
But I still get a read wrapping when I go past the last eeproms register index. I'm using a few 24C02 (2kbit = 2k x 8byte = 256byte). Everytime I try and read values behind the last byte I get the first eeproms memory value back. That's using subsequent Wire.requestFrom() calls; I set the initial reading index with Wire.send(0) and keep reading past the 32nd memory page.
That's interesting and maybe usefull. Anyway I have to take into account it can be done.
I'm still wondering how does Wire.available() cope when negative indexes are used, there's something I still have to investigate regarding this peculiar condition.
Thanks for the hint and the observation :-)