Потому что слэши "съедаются" на разных уровнях. В PHP строках \\ превращается в один обратный слэш. То есть в регулярку реально попадает a\\a. А уже внутри регулярок \\ трактуется как один \. В итоге шаблон ищет именно a\a, и совпадение находится.
Если бы писал четыре слэша в строке (a\\\\a), то в регулярку попало бы a\\a и всё равно результат был бы тем же. Три слэша — минимально достаточно для нужного эффекта.