How to use ROAM_TAGS and/or tags?

It’d be great to get a more thorough description of the options with tagging here, not so much in terms of how tags can be extracted, but in terms of the trade-offs between the -tags :: convention and the #+ROAM_TAGS option.

I’m a total newbie to org mode, but one thing that I’ve noticed that I do not understand is that if I create a link in ROAM_TAGS, the link is expanded so you see the brackets and all. This makes me think that you can’t use links as tags when using ROAM_TAGS. Is that right?

Just a bit more context for my question about trade-offs. I think this comes from having looked over this post by @jethro about how to take notes. There is discussion here of using the -tags :: convention with link, which is appealing because you could have these centralized files with backlinks. But with that convention you don’t seem to get the ability to search by tag that ROAM_TAGS offers. Is there any reasonable way to get both?