The rendering macros are usually responsible only for generating the output you see in view mode. In some cases they also generate a placeholder for edit mode, but just that. So basically you could view a rendering macro as a function that get as input the macro parameters and its raw content and produce the output visible in view mode. Most of the macros are doing just that. So they are not responsible for editing themselves or inserting themselves in the page. That is a feature of the editor used to edit the page content (or the content where you want to call the macro).
So a feature that suggests users when you type @ (as we have in this forum) needs to be implemented in the editor. Either the Wiki editor or the WYSIWYG editor (CKEditor). The editor would then insert the mention macro after you select the user.