Because the messaging and membership layers are the authoritative source for cluster nodes, deleting them from the CIB is not a reliable solution. First one must arrange for heartbeat to forget about the node (pcmk-1 in the example below). To do this, shut down heartbeat on the node and then, from one of the remaining active cluster nodes, run:
hb_delnode pcmk-1
Only then is it safe to delete the node from the CIB with:
cibadmin --delete --obj_type nodes --crm_xml '<node uname="pcmk-1"/>'
cibadmin --delete --obj_type status --crm_xml '<node_state uname="pcmk-1"/>'