I dropped it because the use case was unnecessarily confusing. RDDs are checkpointed as file names `checkpointDir/rdd-<ID> ` . Imagine the following happens. Developer sets useExisting to true for whatever reason. RDD1 is checkpointed to `checkpointDir/rdd-1` . Then the  sparkcontext fails and automatically restarts and starts using the same `checkpointDir` directory again . And the new RDD1 needs to be checkpointed. It will overwrite the previous `checkpointDir/rdd-1` . Setting useExisting to true leads to this kind of hidden behavior.

Instead, now the system automatically creates a `checkpointDir/<UUID>/` every time `setCheckpointDir` is called and RDD1 will be saved as `checkpointDir/<UUID>/rdd1`. After restart, the new RDD1 will be saved as `checkpointDir/<different UUID>/rdd-1` thus avoiding overwriting. 

From the developer point of view, it doesnt really matter whether the exact same directory is used for checkpointing after restart. But it will matter a lot of more if checkpoints gets overwritten accidentally.