Because it seems that, for whatever reason, the "\\" sequence is translated to "\" only if there is text before or after it:
$regsub(text,/t/g,\\a,%x)
or
$regsub(text,/t/g,a\\,%x)
work.
The problem is obvious here. You keep the backslash but also the character(s) you chose to put before or after it (in this example, "a"). However, if you use the "\999" sequence as the set of characters that has to be before or after the \\, $regsub() replaces it with the 999th captured match, which of course doesn't exist. So, \\\999 is tranlsated to \. Pretty clever trick.