The death of optional arguments?

Good point! In fact one can argue that Julia has optional arguments in any position, not just trailing. Eg consider

rand([rng], [S], [dims...])

It is just that it has syntactic sugar for trailing optional arguments. Perhaps syntax could be introduced for the other kinds, eg

foo(a = 1, b, c = 3)

Of course foo(4, 5) is ambiguous, but we already have mechanisms for dealing with that.