I've been through all of the documentation I know of, and there is no mention of the intent or purpose of the i2c_freertos driver. Not a word of explanation in the SDK docs, the example, or the code itself. No discussion of its interaction with the RTOS, nothing about why you'd want to use it.
This function performs the I2C transfer according to the data given in the transfer structure.
That's the entire explanation given for the I2C_RTOS_Transfer() function. From a look through the code, it appears to be a wrapper for the regular I2C driver that uses a mutex to implement a blocking I2C transfer. Which means I can't use it directly for this application, because most of my I2C traffic is done by a state machine in an ISR that reads a set of registers in the background.
I'm not complaining that the driver doesn't have more functionality than that - it's fine as far as it goes and I expected to have to handle this part myself anyway - it's just that the lack of even a brief summary of so much of this stuff means that I'm wasting time reading through undocumented code just to figure out if I should bother using it.