You should contact the author of the SD library wrapper about SD.begin(), the lack of SD.end() and the behavior of SD.exists().
I believe the SD wrapper is a sensible way to simplify the use of SdFat. I don't think this simplicity should be sacrificed for more features.
SD is a wrapper for my SdFat library. If you need more features like SdVolume::cacheFlush() you can use SdFat without the wrapper.
To always flush the cache makes no sense. the SD wrapper has already sacrificed a great deal of performance for simplicity.
See http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1293975555