[SPARK-4094][CORE] checkpoint should still be available after any rdd actions

JIRA URL: [SPARK-4094](https://issues.apache.org/jira/browse/SPARK-4094)
From the docs, it's clear that this is not intended to be called after operations have executed on the RDD. These changes kind of hack it so it doesn't directly fail, but are you certain this is valid? race conditions and so on? What's the point of `doCheckpointCalled` after this change, really? the criteria seems to collapse to "allow checkpoint if no checkpoint data has been written". If it's that easy I do wonder why it wasn't this way in the first place.