I've looked up some my previous talks with developer on this.
>I think current implementation have username because it’s introspection response, we can’t say just displayName
>because displayName of what?
>that’s is the reason of username which in fact is display name. Maybe we don’t need it at all.
>re: sub, we have it already, so it looks good
>we have introspection script, customers can modify it in what ever way they want
So, apparently it's not a bug, the name of this field is enforced by the spec, but it was decided that it will be more useful when carrying displayName's value instead.
In any case, you should be able to modify contents of this token via custom interospection script. Please give it a try.