Some commands require "-- --" if filename includes "-"

A "-" in the middle of a file name produces surprising results:

% src st
M	about.tmpl
M	category-archive.tmpl
M	comment-error.tmpl
M	comment-listing.tmpl
M	comment-preview.tmpl
M	date-archive.tmpl
M	individual-archive.tmpl
M	main-index.tmpl
M	master-archive.tmpl
M	recent-comments.tmpl
=	styles-print.tmpl
M	styles.tmpl
=	trackback.tmpl
=	uploaded-image.tmpl

% src diff recent-comments.tmpl 
src: diff requires at least one file argument

% src diff -- recent-comments.tmpl 
src: diff requires at least one file argument

% src diff -- -- recent-comments.tmpl 
--- recent-comments.tmpl (r3)
+++ recent-comments.tmpl (workfile)
@@ -7,7 +7,7 @@
 
...

Trying to strip it down to a single file produced different results:

% ls -1R
RCS/
recent-comments.tmpl

./RCS:
recent-comments.tmpl,v

% src st
M	recent-comments.tmpl

% src diff recent-comments.tmpl 
src: in recent-comments.tmpl, can't resolve symbol recent

% src diff -- recent-comments.tmpl 
src: in recent-comments.tmpl, can't resolve symbol recent

% src diff -- -- recent-comments.tmpl 
--- recent-comments.tmpl (r3)
+++ recent-comments.tmpl (workfile)
@@ -7,7 +7,7 @@
 
...

Further testing shows that the presence of any other ,v file in the RCS directory, even a completely empty foo,v, changes the error from "can't resolve symbol" to "requires at least one file argument".