Metal:fill-slot values are not carried over from within nested macro
calls any more, unable to find another way to achieve the same result.
Is this intentional behavior?

It does work with tal:define global / replace structure but it is not
as elegant solution as slots. Any better ideas how work around it?

If it isn't on purpose, a simple patch fixes it back to 1.2.0 way (and
then pls could above test be included in testsuite too?):
diff -r PHPTAL-1.2.1/PHPTAL/Context.php /apache2/php/lib/php/PHPTAL/
Context.php