SdFat lib still problem in sd.begin() while sharing with other SPI slaves

This is 2nd post related to this problem, it is intermittent - unstable.
Part of the problem I already got help in this post Sd with SPI sharing which dealt with encapsulating each transfer into the beginTransaction() and endTransaction() pairs. I customized SdFaConfig.h to include #define ENABLE_SPI_TRANSACTIONS

Now it works sometimes but often fails at startup at sd.begin()...
If this "begin" does not fail, then following transactions work sharing with other SPI users at different speeds.
Just placing SPI.begin() (intended for another device/library) before first SD.begin(), aggravates behavior.
Besides the SD card, 2 other slaves don;t have problem sharing SPI bus... Only when adding SD card to the system problems start.

I know that SPI library is OK with calling SPI.begin() many times... (subsequent calls to SPI.begin() does not do anything) but seems like the placement of these "begin()" is effecting SdFat library.
How does sd.begin() routine "know" that there are other clients/libraries of SPI to be initialized?