In current master it only (re)sets a debug variable:
But even before that it only set the address (which is only read in I2C driver, never written).
With the "new" I2C driver, the transaction 'type' is changed by the driver state machine in some cases, e.g. if you have a type TxRx (so a transceive) it will set the type to Rx after the transmit is done. Therefore you have to set the type of the transaction every time if you otherwise want to reuse the same transaction.
That is also why the convenience functions i2c_transmit, i2c_receive and i2c_transcieve are usually preferred over the i2c_submit function where you just pass it the transaction.
I don't use the stable versions... basically also work/test with master (quadrotor stuff only on STM32).
But I had the mkk startup problem on my old booz quad sometimes as well, there the startup delay helped.