Some specialized buffers contain read-only text, which cannot
be modified and therefore cannot be killed. The kill commands work
specially in a read-only buffer: they move over text and copy it to
the kill ring, without actually deleting it from the buffer.
Normally, they also beep and display an error message when this
happens. But if you set the variable kill-read-only-ok to a
nil value, they just print a message in the echo area to
explain why the text has not been erased.
If you change the variable kill-do-not-save-duplicates to a
nil value, identical subsequent kills yield a single
kill-ring entry, without duplication.