[...]
4. if one would like to see the code at the version which constitutes
the current approach to this issue, which revision should one pull?
I don't have a good answer for this, sorry.
I think that James clearly states the issues. I propose we just try to
come to consensus on something like the following:
1. We specify which of the system string initargs are actually optional.
then either
2a. We specify these as being of type string and specify that they take
"" as a default. Supplying NIL would be a type error. For the benefit
of non-type-checking lisps, we could add :after methods on
initialize-instance to reject non-string values.
2b. We specify that the type is (or null string) because we want to be
able to distinguish unsupplied from explicitly empty.