An alternative to the re-invocation using -x in place of -i would be to execv() it with a deliberately obviously wrong argv[0] (c.f. login shells get "-" as argv[0]).  We would then parse args exactly as usual, but skip the copying and get on with the real job, based on whether argv[0] was magic or normal, rather than on whether we got -x or -i.  This would be significantly harder for the inquisitive user to screw up (making "well don't do that, then" all the more apt as an answer).