1)I mean raspberry pi has 8 pins. So at least you could allow to connect two 74hc595 directly to raspberry pi but your library has only 3 predefined numbers. Why? They will work faster.
2)I don't know if it is possible in general but... Let we have 74hc595 connected directly to raspberry pi. So we have 2 pins left + each 74hc595 may produce 8 pins: 2 + 8 * 2 = 18 pins. Could we force them to produce even more pins: 18 / 3 * 8 = 48 pins?