Actually the current implementation wont. Calling rddA.cleanup() will only do two things
1. Unpersist rddA
2. Delete the shuffle dependencies and corresponding shuffle data only related to rddA. Lets assume rddA has two shuffle dependencies s1 and s2, one each to rdd1 and rdd2. These shuffle depencies are not shared with rddB. So cleaning rddA with the current implementation of RDD.clean() will not affect rddB. So the current implementation cannot be directly "misused". But it further reinforces Patrick's point earlier in this thread that it is not clear what is the desired semantics and its best to mark this function as a private[spark] for now.