Maybe you should consider if a byte is really enough for the addressing. It could be that a really tiny ee2 has a byte as address but the bigger ones might need a word.

you can probably see this in the datasheet :-)

24lc02b (256 * 8 bit) so a byte is nice for this.
24lc32 (4K *8 bit ) so here we need more than a byte for addressing

/me