This would only possible for the current instance, though. Since Lemmy is a federated service it is relevant to always provide the instance URL, too. Not everyone uses !asklemmy@lemmy.ml at lemmy.ml.
A feature similar to RES, maybe one that pulls from your subscriptions, would be nice. Start typing the name of a community and it suggests some autofill options formatted in a way that folks from other instances can click on it easily.
I don’t know why the bang syntax exists or how it’s different
Maybe because of the success of Mastodon using @username@example.com (which basically is the combination of the common practice of other social media networks using @username and the e-mail style of username@domain). With !community@example.com it is made clear that the URL refers to a community and not an user.
It's just easier to write !foo@bar instead of building an URL using some sort of path.