If you want to stick to more natural Markdown syntax, I believe you should be able to use a Hugo render hook[0] to change how normal Markdown links are rendered instead of using a custom shortcode.
Slick, this is news to me. I like the flexibility. It seems like Hugo's docs are quite complete, but not super optimized for either discoverability or for thinking in terms of the process that actually happens in the rendering process. I thought I've gone all over them, but I never noticed this.