what board are you going to use ? What are the specific I2C transactions that you'll need?
With the Due board, I was able to read/write from/to an internal register of a I2C slave device (MLX90614), using the API in the libsam library. You can find the source in
arduino-1.5.1r2\hardware\arduino\sam\system\libsam\source. Look for twi.c and twi.h
The functions of interest are void TWI_StartRead and void TWI_StartWrite. They both have a parameter called uint32_t iaddress where you can put the internal address/register you want to access. If you specify it, then the controller will automatically send a REPEATED START condition after writing the address of the slave device and of the internal register on the bus and before reading/writing the data bytes.
I'm about to start an I2C project that may require I2C repeated starts.
Have you learned anything about this issue?