Partially answering my own question, I now see that the \unset idea does not work, and you have to reset the keep alive interfaces list to the initial list. [I got the unset idea from some archive posts.]
So now I can selectively show a stave containing only rests, but what about one containing only spacers? I am unable to find what interface that is.
Am I on the right track overall?
New MWE:
%====
\version "2.19.82"
violinOne = {
\override Staff.VerticalAxisGroup.remove-first = ##t
\repeat unfold 8 { c''4 }
\break
% will show staff of rests OK
\set Staff.keepAliveInterfaces = #'(
bass-figure-interface
chord-name-interface
cluster-beacon-interface
fret-diagram-interface
lyric-syllable-interface
note-head-interface
tab-note-head-interface
lyric-interface
percent-repeat-item-interface
percent-repeat-interface
rest-interface
)
\repeat unfold 8 { r4 }
\break
\repeat unfold 8 { c''4 }
\break
% how can I show this line of spacers?
\set Staff.keepAliveInterfaces = #'(
bass-figure-interface
chord-name-interface
cluster-beacon-interface
fret-diagram-interface
lyric-syllable-interface
note-head-interface
tab-note-head-interface
lyric-interface
percent-repeat-item-interface
percent-repeat-interface
rest-interface
)
\repeat unfold 8 { s4 }
\bar "."
}
violinTwo = {
\repeat unfold 8 { c'4 }
\break
\repeat unfold 8 { c'4 }
\break
\repeat unfold 8 { c'4 }
\break
\repeat unfold 8 { c'4 }
}
\score {
<<
\new Staff {
\violinOne
}
\new Staff {
\violinTwo
}
>>
\layout {
\context {
\Staff
\RemoveEmptyStaves
}
}
}
%====