startx was introduced in X11R3, in 1988, with the following changelog entry:
added a sample startx script that has conditionals for the appropriate systems.
This accompanied a number of improvements to xinit, such as support for user-specific .xserverrc and .xinitrc scripts to respectively start the server and client(s).
startx didn’t do much beyond that: it added support for system-wide xserverrc and xinitrc scripts (which could just as easily have been added to xinit itself), and cleans up after itself on A/UX Macintosh II systems (which were newly supported in R3) and Sun systems.
At the time, many systems would have had their own X startup scripts, whether to start the server, or start a default set of clients, if only because X11R2’s xinit was bare-bones and would require customization (or outright replacement) with a wrapper script at least, either provided by the system’s manufacturer (e.g. openwin on Sun systems) or by the local system administrator. startx was effectively a very simple template for system-specific startup scripts; it was extremely common for system administrators in the late 80s and early 90s to provide a lot of local content (scripts, man pages, etc.).
startx did include enough features to make it unnecessary in many cases to make any changes to it, since startup customization could be entirely handled by providing local xserverrc and xinitrc scripts. Its author presumably imagined that many system administrators already had better versions, or would “easily” write better versions reflecting their local constraints and preferences — e.g. many system administrators would not want users to be able to change the X server startup by providing their own .xserverrc.
One common change was to add more cleanup to the script, e.g. killing errant Netscape Navigator processes (at least on SPARCstations, Netscape Navigator 4.78 had a tendency to not exit when it lost its connection to the X11 server, going into a tight loop instead).
I don’t have archives of such scripts, but there were nicer versions, “nicer” as in “more appropriate for local usage” than the default version. Linux distributions also often carry startx patches, e.g. this one in Debian. More recently, sx is a replacement for both xinit and startx, with a number of improvements (hard-coded server startup, better xauth handling, more predictable tty handling). startx itself had many changes over the years, but the “Site administrators are STRONGLY urged to write nicer versions.” comment was never removed, even as reasons for them to do so were progressively removed.
The idea of startx being a sample, as mentioned in the changelog, fits with much of the rest of the X11 distribution; for example the X server was described as a “sample server”, with the idea that many manufacturers would provide their own implementation based on it:
The servers, libraries, and applications provided in this release are sample rather than reference implementations.
(quoting the X11R4 release notes; strictly speaking this is supposed to indicate that the implementations shouldn’t be used as a reference instead of the actual standards, not that the implementations are not intended to be used).
startxscript, nice tickling @MC68020 !