I know and that's not what I said.
That part was me sort of agreeing with you and stating that some of what prissi wrote was something of a digression.
A shell that escapes characters itself ? Never saw that ... Here it's the Windows console and it does not escapes characters itself before passing strings as arguments.
Except for Microsofts Command Prompts, every other shell that I know of needs escaping since they parse the command line to do wildcard expansion and argument splitting. Microsoft's OSes leave this to the C runtime, although Microsoft's shell still needs to split the program name from the rest, so there might be some such handling in the shell. And I'm not sure who is responsible for variable expansion. However, the shells (or the runtime) do not escape, the user is the one escaping, because the shell (or runtime) puts special meaning into certain characters like space, quotation mark and asterisk. Like C, most shells (being of Unix origin like C) use backslash to escape these characters. Had you been using any other shell except the typical Microsoft ones (don't know about PowerShell), that would have explained why backslashes were not working. The shell would have understood them as you using them to escape some other character. It is not too strange for people to use other shells on Windows since the default one is rather lacking in features compared to shells like bash. It could therefore be that what makeobj sees are the three parameters "pak128", "catenary.all.pak" and ".nfrastructureatenary_all" (or even a bit weirder) when backslashes were used, because the shell treated the backslashes as escapes.
Once it the parameters had gotten that far, nothing should treat the backslashes as special anymore. At least on Windows. Unless, of course, the strings are parsed as a regex pattern or something.