The Curry issue is looking like it is an issue with Curry. The equivalent code from the test without the curry trait looks like:
sub a($a,$b,:$c = 1) {
dd $a, $b, $c
}
my &b := &a.assuming(42);
dd &b.signature; # :($b, :$c = 1)
my &c := &b.assuming(666);
dd &c.signature; # :(:$c = 1)
my &d = &c.assuming(:137c);
dd &d.signature; # :(:$c = 137)
However, the equivalent signatures using the curry trait offered by Curry show:
:($b, :$c = 1)
:(:$c = 1)
:()
In other words, Curry removes the optional named argument from the signature, causing the test failure.