Microcontroller IO pin configuration I2C
Most I2C devices allow clock stretching, by which the slave can 'slow down' a bit when it can't catch up with the speed of SCLK generated by the master.
The slave does that so by stretching the SCLK line low after receiving/sending a byte (the master relinquishes the control on SCLK at this time). The slave pulls the clock back to high when it's ready to process the next byte. The master detects this and takes the control of SCLK again, and the communication resumes.
In such I2C devices, SCLK also has to be a bidirectional line (open-drain/open-collector).
Also being I/O SCLK pin, this gives the flexibility of configuring the I2C device as either master/slave.