All cases should work now -- that's adjacent duplicate merging, first-last duplicate merging, and start/end cap merging. A lot of complexity really, wonder if it might not be better to just do a full "remove doubles" rather than try to match pre-BMesh behavior exactly.