Is there a good practice approach to powering down peripheral devices (SPI, I2C, UART) which use significant power?
I would use an analog multiplexer as shown below:



Use the select line to connect the master side (on the left) to the device (on the right) when it is powered up; select the dummy lines (which can go nowhere) to connect to the master and then power the device down.

The multiplexer will provide isolation.

The device may need a pullup (high value, it is not there for any reason except to put a valid level on the pins) on SDA and SCL.