In the application notes for the TPS2384 opto isolator devices are used to get access to the I2C bus. For SDA_I and SCL the driver is connected to the LED cathode and the LED only flashes, if activity is on the I2C bus. Also, no polarity inversion is necessary, since the transistor on the output of the optical isolator is connected to GND.
For SDA_O, a more complicated approach is used. The LED is always on, except, when the SDA_O (here it is called SDA_OUT) pin goes low. The output of the opto isolator is now inverted and another inverter with open drain output must be added.
Wouldn't it be possible to use the solution for SDA_O below? If the SDA_O is inactive, no current flows through the LED and the output of the optical isolator (transistor) has a high impedance, thus, the pull-up of the I2C bus on the right side will cause a high level. If the SDA_O is active (low level), the LED is on and the output transistor of the opto isolator connects SDA with GND.
The benefit of this solution are not only the lower component costs but also a much longer lifetime of the opto isolator devices, since they are only active a small amount of time.