No. If you do not use a key, the default key is the index: the first
data is mapped to the first element, and so on. Thus, if your new data
has more elements than the existing selection, the incoming data will
be available in the enter list, and the exit list will be empty;
likewise, if your new data has fewer elements, the outgoing elements
will be in the exit list and the enter list will be empty.
> 2. Is using a key then more efficient as it means certain items will
> not be removed if there exists already a key for them?
Using a key can be more efficient as you don't need to update elements
whose data does not change. Generally speaking, though, the key
function won't change the number of elements that enter or exit; key
functions are particularly important for preserving object constancy
across transitions, as in this tutorial:
http://mbostock.github.com/d3/tutorial/bar-2.html
Mike