I looked at the jQuery source code for the .empty() function:
jQuery
.empty()
empty: function() { for ( var i = 0, elem; (elem = this[i]) !
Just think about .data() expandos and event handlers... By just removing the DOM, you would create memory leaks every time.
.data()