It would also be handy for beginners to output an int without having to bitshift high and low bytes - somewhat tricky since it has to be done differently with MSB and LSB schemes.
Seems to be a good idea initially, but almost every documentation or tutorial on SPI-devices uses bytes or arrays of bytes.
Since ints and ints are so different nowadays (2bytes - 8 bytes long) using the plain byte as common currency (in documentation) is the easiest way.
Somehow the framesize option found it's way into the Basic Stamp and other easy-to-use micros. I think the BASIC Atom even implemented some clock control options.
But it would add another parameter to the function, that has to be documented and explained.
As to the SPI hardware - I haven't puzzled my way through this, but would love to see this implemented in shiftout asap.
With CPOL anfd CPHA there would be 2 more params. Now we would already need a setup-function.
Hardware SPI is always available. You actually need it, when you deal with devices that not only receive, but also send data. (EEProms, ADC's DAC's etc.).
I think a library for Hardware-SPI would be a good idea, and should not be to difficult to create.
Could you do some testdrives with your TLC5940 when I send you some code?