Do I really need a level-shifter if I use 5 V-powered devices on an I2C-bus that has pull-ups to 3.3 V?
In my understanding the devices will only pull the lines (SDA, SCL) low (to ground) and never drive their supply-voltage to the bus. So I don't see a reason for a level-shifter as long as all devices detect the voltage from the pull-ups (3.3 V) as logical high. That should be the case with devices using 5 V as supply.
In my case I have an IC whose inputs are not 5 V-tolerant as master and I could power my slaves with 3.3 V but using 5 V is easier in my circuit and allows higher (internal) clock-rates for the slaves.