"В спецификации I2C говориться только о том, что данные на SDA не должны меняться пока SCL низкого уровня."
Наоборот. Данные на SDA не должны меняться пока SCL _высогого_ уровня. Смена состояния SDA только при низком SCL, плюс к этому указывается минимальное время в течении которого данные должны удерживаться после спада клока и минимальное время до фронта клока после смены состояния на SDA.