Você está certo de que o RaspberryPi fornece apenas duas seleções de chips em seu barramento SPI (veja aqui ). E suponho que os drivers SPI e as soluções de software se baseiam nesse fato (embora a resposta de @ joan sugira que diferentes bibliotecas o tratem de maneira diferente e o driver oficial permita que pinos GPIO arbitrários sejam usados como seletores de chips no futuro).
No entanto, você deve ter em mente que uma seleção de chips nada mais é do que uma saída digital dedicada do Pi. Portanto, você sempre pode selecionar uma quantidade maior de chips se usar os pinos GPIO. Nesse caso, porém, seu software será responsável por definir os pinos apropriados para endereçar o escravo SPI correto.
Como toda a idéia da seleção de chips é selecionar mutuamente exclusivamente apenas um único escravo, você também pode usar alguns circuitos digitais simples para diminuir a quantidade de pinos GPIO "desperdiçados" (se você precisar deles para outros fins). Algo como o 74HC / HCT138, um decodificador / desmultiplexador de 3 a 8 linhas pode ser usado para endereçar 8 escravos através de 8 seletores de chips com apenas 3 pinos GPIO.
Vale ressaltar que as linhas de ônibus SCLK e MOSI são compartilhadas entre todos os escravos. Portanto, ao conectar vários escravos ao Pi, certifique-se de que a saída do Pi não seja excedida pela carga (resistência e capacitância dos pinos de entrada dos escravos) - embora isso seja menos problemático hoje com a baixa capacitância e alta resistência de entradas digitais.