Is this usage of Wire.write() correct ?

You could always do something like:

char stuffToSend[10];
sprintf(stuffToSend, "x is %d", x);
Wire.write(stuffToSend);

in the requestEvent() function.