That is correct, but only done in setup(). Once that is done, they are handled by the low level read/write routines in each library. This is what I use:
void setup()
{
Serial.begin(9600);
// disable w5100 while setting up SD
pinMode(10,OUTPUT);
digitalWrite(10,HIGH);
if(SD.begin(4) == 0) Serial.println("SD fail");
else Serial.println("SD ok");
// SD.begin returns with its SPI disabled so nothing needs to be done
Ethernet.begin(mac,ip);
// Ethernet.begin() returns with its SPI enabled, so disable it.
digitalWrite(10,HIGH);
// rest of your setup here
}
edit: I added error checking on the SD.begin() routine.