I2C Communication in AVR
The first thing to do is to send the start. When it is sent, the I2C peripheral sets TWINT bit and waits for the software for more commands what to do next. The software then updates whatever things are necessary to do next, and then clears the TWINT bit to zero so the peripheral then continues to do what it was told. So it must be kept set until everything is configured and set to zero to continue.
Basically, TWINT being set means previous operation is done and waiting for next operation.
And due to how the TWINT flag and many other flags work, it is not cleared by writing a zero bit, it is cleared by writing a one bit.