Stackable shields

Isn't implementing an I2C "slave" difficult, though? Or was that SPI? There are a couple protocols where the master has it easy, but the slave has to be able to toggle a signal on a clock edge (or similar), which is tough to do in SW.

I believe that Wire handles it out of the box. Its SPI with the tricky slave stuff.
When creating the object there is a optional slave address parameter although I've never used it.