Das ist bekannt, und meiner Ansicht nach auch logisch. Ich habe zwar von PHP keine Ahnung, aber in Perl gilt das auf jeden Fall.
Wenn der array parameter von array_slice eine Referenz wäre, ist er aber nicht. Das übergebene Array muss/darf/kann nicht verändert werden.
array_slice(range(1,1<<24),1<<12,1))
ist daher möglich, die Laufzeit davon allerdings nicht.)