I don't really see the problem here: if someone creates a username that can't easily be typed: let them

Yep. (Though, to be pedantic: it's their
display name that I have an issue with, not their username; probably their username is not a BBCode tag.)
I guess it irritates me mostly from a technical perspective:
(*) Allowing BBCode-like display names leaves open an easily-closable avenue that slowly subtracts from the available BBCode "namespace". I know that that's a confusing sentence, but, what I mean is: Let's say someone decides/decided to call themselves
[hide]? That would irritate me, because it would complicate
this patch (as in, if the hypothetical user named
[hide] were still active or could become active again, then I would not be able to pick
hide for a tag name, and if that user were inactive and couldn't become active again, then I would need to date-gate the logic to avoid catching old mentions of their name; I mean, I probably
should always include date-gating logic with any tag-introducing patch, but that thought doesn't take much away from the argument that I'm trying to make here).
(*) Allowing BBCode-like display names is the kind of trade-off that just... doesn't make sense to me. For example, what if someone wanted to be called
[sup],
[nbsp], or
[/code]? Think about how those names interact with various posting norms and with most people's BBCode proficiency.