I haven't used this device yet, but maybe someone that has can tell me if the DIO settings remain static when performing an I2C operation and also when switching between the I2C and SPI modes.
The USB-8451 DIO can be programmed to be software timed (static) individually for every line. This means that the DIO will be software timed regardless of wether you are using I2C or SPI since these two have their own dedicated physical lines as indicated in the USB-8451 User Guide and Specifications.
It sounds like you're saying the DIO is independent of I2C and SPI, which is what I would expect. I had also thought about using the SPI CS lines as GPIO outputs, but I couldn't be sure that they would remain static as I transitioned to I2C.