You can't provide defaults for values in the middle, as you wouldn't know which one is missing.  Imagine this:
FUNC(1,5)
where the function can take four arguments:
FUNC(a,b,c,d)
How would you know, if you allow b to be defaulted whether or not b, c or d is missing?

That's why we only allow defaults for trailing arguments.