list() is a language construct and never was a function

list() looks like a function call and behaves like an assignment target, which is why it can appear on the left of = and why it cannot be passed around, aliased or called.

list($from, $to) = [10, 99];
[$from, $to] = [10, 99];        // 7.0: the short syntax

foreach ($ranges as [$from, $to]) { /* ... */ }

list(, , $third) = $row;         // skipping, and it stays ugly

The short [] form arrived in 7.0 and is now the one to use — it matches the array literal it is destructuring, which makes the symmetry obvious. Keys are not supported until 7.1, so this year an associative row still has to be unpacked by hand. Assignment order is left to right in PHP 7, which was undefined before and occasionally relied upon.