I2C: 3.3V and 5V devices without level-shifting on 3.3V-bus?
According to version 4 of the \$\mathrm{I^2C}\$ spec, 


  "Due to the variety of different technology devices (CMOS, NMOS, bipolar) that can be
      connected to the I2C-bus, the levels of the logical ‘0’ (LOW) and ‘1’ (HIGH) are not fixed
      and depend on the associated level of VDD. Input reference levels are set as 30 % and
      70 % of VDD; VIL is 0.3VDD and VIH is 0.7VDD. See Figure 38, timing diagram. Some
      legacy device input levels were fixed at VIL = 1.5 V and VIH = 3.0 V, but all new devices
      require this 30 %/70 % specification. See Section 6 for electrical specifications." (page 9)


Deeper in the spec, you'll see that this \$ 0.7 \times V_{DD}\$ is the minimum logic high voltage:



For your 5V system:

\$ 0.7 \times 5 V = 3.5 V\$

\$ 0.3 \times 5 V = 1.5 V\$

To me, the 3.3 V pull-up looks marginal, especially if any of your 5V devices use the 'new' standard of \$ 0.7 \times V_{DD}\$ for logic HIGH.

Your mileage may vary, but it's always best to be within the spec wherever possible...