You should probably file a bug report -- I've filed a couple on adduser, one of which probably covers your example except for "system" accounts. The big problem seems to be that the "gap finding" code is wrong. If you look at bug#2285, you'll see the patch I suggested; it may work for the normal user case as well.