Note that the problem I see with my camera is not related to E-TTL II, as I'm using FEL (Flash Exposure Lock) when it happens. In the beginning, it didn't work with normal E-TTL II either, but that has "healed" by itself, for some reason. Not the problem remains when using FEL only. That bypasses all evaluative metering and processing the camera normally does (with E-TTL II), so it's not any reflective surfaces or anything that fools the camera.
The other main point is that it works when using the 580 EX II as a master. Hence it doesn't matter if some direct light hits the target, when I set the slave to bounce. The camera can handle that, when the 580 EX II is used as a master, so in my opinion, using the internal master it should be able to do the same.
Not sure if the comment about processing and such was directed to me, but I did once think about what kind of timing is needed to capture the flash illumination and read it at the proper time. Time of flight for light to pass 0.3 meters is one nanosecond. Ten nanoseconds is 3 meters. Up, bounce, down and then back to the camera could be 15 nanoseconds. That's the cycle time for a 67 MHz processor.
This reasoning was not to try to proove that there's a processing issue here, just to show that although light travels very fast, it's still figures within the same magnitude we are talking about. The burn time of the pre-flash is of course significantly longer, so it may be that this is no issue. But then, why does it work when the slave is aimed directly towards the target? The difference is only a few nanoseconds.
--
Anders