The good news: vendor says I'm supposed to have to write all this glue code on top of their driver to make it work over SPI bus. So I guess I wasn't wasting my time.
The bad news: Linux's SPI layer seems pretty standardized if you ask me. The code I wrote so far is not specific to the chipset we're using. So I'm pretty sure they could have done it properly if they cared.
Oh well, now I know about the SPI bus.