This is because interpreting `*$head` as a "slurpy scalar parameters" the way S06 intended, has never been implemented.
Rakudo seems to interpret `*$head` as a normal `$head` parameter, so you need to explicitly interpolate your input range into the argument list using | if you want it to be unpacked.
Ideally, Rakudo should throw an error when it encounters the `*$head` syntax, until the S06 behavior is implemented.
(The fact that your last example hangs is a separate bug, covered by ticket #128201)

FYI, unpacking a slurpy parameter can already be done using a subsignature. The following two should behave identically, but only the first is already implemented:
sub foo (*@ [$head, *@tail]) { } # works
sub foo (*$head, *@tail) { } # NYI