The described problem (no 'OK' is printed) persists on Parrot but works fine on Moar and JVM:
$ perl6-p -e 'sub foo { LEAVE { say "OK" }; die "died" }; foo()' 2>/dev/null
$ perl6-m -e 'sub foo { LEAVE { say "OK" }; die "died" }; foo()' 2>/dev/null
OK
$ perl6-j -e 'sub foo { LEAVE { say "OK" }; die "died" }; foo()' 2>/dev/null
OK
I added a test (skipped for Parrot) to S04-phasers/enter-leave.t with the
following commit: https://github.com/perl6/roast/commit/6e02af8c84
