It's worthwhile thinking about the concepts and how they map to classes.
The View(er) class "is a" View, rather than "has a" View. The Viewer
class is special case just for handling a single View and makes it
easy as possible to just set up viewer with a single View of a single
Scene. Slave Camera's can be used in conjunction with the View(er) in
cases where the view is made up of separate windows or rendering
effects that all contribute towards provided the view in intended.
Think of a car simulator where you have a monitor for the windscreen,
and a left and right monitor for the left and right door windows -
you'd have three windows that are are controlled by a single master
view direction, with each one just offset from this direction, each
window maps to a GraphicsWindow.
The CompositeViewer is a more complex and more flexible class that
"has a" list of View(s). Each View can have it's own unique Scene or
share a Scene. Each View can be composed of a single master Camera or
from a set of slave Cameras as above. Multiple Views are useful when
you have independent views of scene such as 3D view and a map view
insert where the scene is the same but the camera that controls the
view direction can be moved independantly. Alternatively you can
independent Scenes in each View, or mix and match to your hearts