This is a trivial implementation. Far more sophisticated implementations are possible and should be developed.
Error handling is nonexistent. Without -v, error reports from the remote are discarded silently. With -v, error reports are displayed.
The $DISPLAY environment variable is passed. If it starts with a colon, the local hostname is prepended. The local domain name should be appended to unqualified host names, but isn't.
The $SESSION_MANAGER environment variable should be passed, but isn't.
X11 authority information is passed for the current display.
ICE authority information should be passed, but isn't. It isn't completely clear how rstart should select what ICE authority information to pass.
Even without -v, the sample rstart helper will leave a shell waiting for the program to complete. This causes no real harm and consumes relatively few resources, but if it is undesirable it can be avoided by explicitly specifying the "exec" command to the shell, eg rstart somehost exec xterm This is obviously dependent on the command interpreter being used on the remote system; the example given will work for the Bourne and C shells.