Bad form to reply to one's own message, but I just noticed an extraneous shift appeared just before the end of the while loop in the script I posted earlier, which causes some issues. With that removed, the question still stands, tho.
Think I'm just going to have to live with it, short of using an alternative non-getopt(s) solution.
Peter.