It's not just test cases. Some GNU programs set optind=0 and expect this to cause getopt_long to rescan. The Coreutils programs env, nice, and stty all do this. This suggests that getopt_long should keep this behavior and its documentation, and that for consistency's sake getopt should also keep doing it.