A problem with a format parameter is that duration cannot be broken down to months/years without specifying the start date, eg 60 days may not be exactly two months if the start date is 1st of January (since 31 + 28 = 59). One approach would be to assume months are 30 days on average (and years are 365 days). If that approach were taken, I'm sure somebody would come here complaining about this

A related problem is the absence of a 'weeks' sequence from the available formats.
In general, the format parameter is meant to represent points in time, not durations. I'm not arguing against the feature, just pointing out that there are issues (which I'm guessing are the reason $duration has not supported a format parameter so far).