I had the (probably old) idea to reduce the power consumption of an I2C bus by actively driving the high side of the pullup resistors using output pins on the MCU that serves as the master on the bus. Separate input pins are used to read the low side of the pullup resistors. See the attached diagram.
During a master read sequence, the SDA pullup resistor would be kept high. When checking for clock stretching, the SCL pullup resistor would be kept high. Otherwise, the high side of these pullup resistors would be driven by the desired bus signal.
Does anyone see problems with this scheme? Of course the fall times would be longer unless the input pins were switched between input mode and output low mode. In either case, I would bit bang this implementation and would adjust timings to meet the I2C spec across worst-case MCU oscillator tolerance.
Edit: switching compression settings on attachment.