Pardon my ignorance, but *why* is it a good thing to prohibit the
implementation from passing the program arguments as literals?
You seem to be saying that there's a good rationale for requiring
argv[i][j] to be modifiable; what is that rationale?
David Tribble points out that this requirement complicates recursive
calls to 'main'; I imagine it might complicate the startup code on some
implementations, too. So, what's the "good case" that makes all this
(I checked the Rationale, and didn't see anything relevant.)