As per RFSBOX-47, during the DOM cleanup in richfaces.js I've fired a cleanup event that is listened to by the body. The body in turn fires a cleanDom event that is listened to by each of the Bootstrap components. This event triggers the components to destory themselves if they are contained within the DOM tree of the root element of the AJAX update.
However, it turns out this cleanup code is superfluous, as the jQuery UI wideget factory based Bootstrap components get destroyed when jQuery.cleanData() is called in richfaces.js. I've decided to leave the new event driven cleanup code in place however, as we should eventually move the cleanup code currently in richfaces.js into it's own file with the current component set, and triggered by the same event that triggers the bootstrap component cleanup.
Something to keep in mind though when trobuleshooting the component cleanup.