js/leaflet.markercluster.js
function (marker, removeFromDistanceGrid, dontUpdateMap) {
    var gridClusters = this._gridClusters,
      gridUnclustered = this._gridUnclustered,
      fg = this._featureGroup,
      map = this._map;

    //Remove the marker from distance clusters it might be in
    if (removeFromDistanceGrid) {
      for (var z = this._maxZoom; z >= 0; z--) {
        if (!gridUnclustered[z].removeObject(marker, map.project(marker.getLatLng(), z))) {
          break;
        }
      }
    }

    //Work our way up the clusters removing them as we go if required
    var cluster = marker.__parent,
      markers = cluster._markers,
      otherMarker;

    //Remove the marker from the immediate parents marker list
    this._arraySplice(markers, marker);

    while (cluster) {
      cluster._childCount--;

      if (cluster._zoom < 0) {
        //Top level, do nothing
        break;
      } else if (removeFromDistanceGrid && cluster._childCount <= 1) { //Cluster no longer required
        //We need to push the other marker up to the parent
        otherMarker = cluster._markers[0] === marker ? cluster._markers[1] : cluster._markers[0];

        //Update distance grid
        gridClusters[cluster._zoom].removeObject(cluster, map.project(cluster._cLatLng, cluster._zoom));
        gridUnclustered[cluster._zoom].addObject(otherMarker, map.project(otherMarker.getLatLng(), cluster._zoom));

        //Move otherMarker up to parent
        this._arraySplice(cluster.__parent._childClusters, cluster);
        cluster.__parent._markers.push(otherMarker);
        otherMarker.__parent = cluster.__parent;

        if (cluster._icon) {
          //Cluster is currently on the map, need to put the marker on the map instead
          fg.removeLayer(cluster);
          if (!dontUpdateMap) {
            fg.addLayer(otherMarker);
          }
        }
      } else {
        cluster._recalculateBounds();
        if (!dontUpdateMap || !cluster._icon) {
          cluster._updateIcon();
        }
      }

      cluster = cluster.__parent;
    }

    delete marker.__parent;
  }
function (marker, removeFromDistanceGrid, dontUpdateMap) {
    var gridClusters = this._gridClusters,
      gridUnclustered = this._gridUnclustered,
      fg = this._featureGroup,
      map = this._map;

    //Remove the marker from distance clusters it might be in
    if (removeFromDistanceGrid) {
      for (var z = this._maxZoom; z >= 0; z--) {
        if (!gridUnclustered[z].removeObject(marker, map.project(marker.getLatLng(), z))) {
          break;
        }
      }
    }

    //Work our way up the clusters removing them as we go if required
    var cluster = marker.__parent,
      markers = cluster._markers,
      otherMarker;

    //Remove the marker from the immediate parents marker list
    this._arraySplice(markers, marker);

    while (cluster) {
      cluster._childCount--;

      if (cluster._zoom < 0) {
        //Top level, do nothing
        break;
      } else if (removeFromDistanceGrid && cluster._childCount <= 1) { //Cluster no longer required
        //We need to push the other marker up to the parent
        otherMarker = cluster._markers[0] === marker ? cluster._markers[1] : cluster._markers[0];

        //Update distance grid
        gridClusters[cluster._zoom].removeObject(cluster, map.project(cluster._cLatLng, cluster._zoom));
        gridUnclustered[cluster._zoom].addObject(otherMarker, map.project(otherMarker.getLatLng(), cluster._zoom));

        //Move otherMarker up to parent
        this._arraySplice(cluster.__parent._childClusters, cluster);
        cluster.__parent._markers.push(otherMarker);
        otherMarker.__parent = cluster.__parent;

        if (cluster._icon) {
          //Cluster is currently on the map, need to put the marker on the map instead
          fg.removeLayer(cluster);
          if (!dontUpdateMap) {
            fg.addLayer(otherMarker);
          }
        }
      } else {
        cluster._recalculateBounds();
        if (!dontUpdateMap || !cluster._icon) {
          cluster._updateIcon();
        }
      }

      cluster = cluster.__parent;
    }

    delete marker.__parent;
  }
Internal function for removing a marker from everything. dontUpdateMap: set to true if you will handle updating the map manually (for bulk functions)