Restarting a cassandra cluster member with option -Dcassandra.join_ring=false populates wrong value to its StorageServiceMB field Joined which causes the actual trigger to join via nodetool join to abort due to check if Join in StorageServiceMB is true. Via jconsole it's possible as there is no check.
nodetool status also shows that the node is up and in normal node, on the rest of the cluster node status is DN.
nodetool gossipinfo states that the non joined node is in gossip state hibernate.
Came across this issue while evaluated the problem of zombies to integrate into automation processes and the documentation states
To avoid this problem, run nodetool repair on any restored node before rejoining it to its cluster.