Is this usage of Wire.write() correct ?

only the last Wire.write() is received on the master-side.

That's right. That's what happens.

Inside a requestEvent if you try to do two writes the second one overwrites the buffer that the first one used.

As PaulS said, you need to construct a single string (or buffer) and send that with a single write.