If someone changes their username, all @ mentions are “broken” and no longer point to the user.
Also, if someone changes their username or deletes their account, someone else can make a new account using that old username. All previous @ mentions will now point to the wrong person (eek).
If someone does delete their account, the @ mentions should change to render as plaintext or something (rather than anonymize like @deleteduser).
For what it’s worth, MusicBrainz (the site I work for) for example allows it but only if they ask support to make the change (which means we can limit random “I felt like it” changes). We do still use ID everywhere though, otherwise too much would break :)
This functionality would probably require us to keep mentions in our database permanently (they currently get removed after 3 months), which our developers say is not trivial. So it’s possible but unlikely.
I suppose just a global search-replace on the @ mention text in appropriate table columns, when somebody changes their username (hopefully a fairly rare occurrence) would be even less feasible…?