Userscripts don't work too well for this, because you have to either check all links everywhere or delay redirection to only after you reached the page.
Compatibility:
Bookmarklets work on all devices. Deskop, iOS and Android.
Security:
I can easily read and understand the code.
They only run when I invoke them. While extensions have access to everything you do an any page, bookmarklets only have access to the page where you invoke them.
Flexibility:
They are easy to change. For example in this one, I will probably update the array of Nitter instances regularly.
Usability:
I can organize them just like my other bookmarks.
Sharing:
I can put the bookmark in just a line of text in a text file with an explanation. As I did here. No need to dabble with extension repositories of Firefox and Chrome, as you would have to with extensions. I don't even know how it would work for other browsers.
[1]: https://github.com/Jdhaimson/smilealways