I have noticed that some libraries only set SPI parameters (mode, clock div, bit order) for their device from within the begin() function. How are users expected to use such a library and also use (in the same sketch) other devices that expect conflicting SPI parameters?
They aren't. The library write was not expecting the SPI bus to be shared so they took the lazy route. Fortunately you have the sources handy so you can correct the problem.