Simply doing the right thing is definitely the right thing. In terms of implementation, which could be via policy I see three approaches:
1. Perform the correct delete
2. Don't protect against a possible invalid delete
3. Pervent the assignment that causes the slicing from compiling
For the default I definitely like N1, N3 is possible, and I really don't want N2 to be the default. In ordered to favor N3 over N1 there would have to be a large performance/space penalty, not simply measurable. I like my safety, and am very much in favor of Peter's last change.