Why do backslashes prevent alias expansion?
\ls only quotes the first character rather than the whole word. It's equivalent to writing 'l's.
You can verify it like this:
$ touch \?l$ \??bash: ?l: command not found
If \?? quoted the whole word it would say ?? not found rather than ?l not found.
I.e. it has the same effect as:
$ '?'?bash: ?l: command not found
rather than:
$ '??'bash: ??: command not found