I don't think your section on "Does not photocopy" is an entirely
correct statement about the Joomla plugin system. While there is a
chain of command pattern in some places (the authentication system)
which was specifically designed to both facilitate altering the
original message and breaking out early, JDispatcher does not use that
pattern and in it's design doesn't take an opinion on the matter. It
really actually depends on the calling class and how it constructed
the arguments. If an object is being passed around then it will be
capable of being modified and this will be passed along, however if an
array of primitives is being passed then I don't see how these could
be altered.
Apart from that an interesting way of re-casting the system in
hopefully more familiar terms.
Cheers,
Sam