I don't think this is necessary:
+ // first remove all cfs from the table instance, so that any pending row mutations error out.
My reasoning is, with or without that code it is possible to start a mutation that is invalid by the time it is processed, so why bother?
+1 the rest.
Your point is valid, but the CFs need to be dropped somewhere. I'll change the comment so it doesn't give the impression of protection.