The SPI expander can have issues with many arduino libraries since coders prefer to bury the hardware calls in particular with SPI.
With SPI the CS call it is very very often buried effectively marrying the SPI bus exclusively to a vendors hardware and making it unpleasant to share the SPI bus with other devices via an expander since at anytime the vendor's library can lower CS to take control of the bus ( a single digital write to a pin).
In the case of SPI expanders more than just lowering the CS pin is needed since several instructions need to go to the expander to lower a specific CS. This implies that every call involving CS in the vendors library code has to be wrapped with several instructions that are needed to instruct the expander to do the same thing.