The following YAML demonstrates a case where a document-end marker is important and should not be omitted:
libyaml should emit it even if implicit is true. Currently it does not, pyyaml and ruamel do.
Demo:
libyaml % echo '+STR
+DOC
=VAL |foo\n\n\n
-DOC
-STR' | ./tests/run-emitter-test-suite
|+
foo
libyaml %