Apparently a lot of people are confused about the difference between auto-complete, auto-list members, and auto-list parameters.
They share some visual cues, but they are separate mechanisms.
FYI: We do have plans to consolidate the mechanisms in a future, future release, but it is no trivial task, so for the time being it's best to learn how they work.
If you pay attention, and learn what to expect in what situations, it's easy to know which mechanism you are dealing with.
The additional visual cues in auto-complete are obvious. But more obvious is the fact that auto-list members and auto-list parameters are triggered when you type certain characters. For example, the member access operator or an open parenthesis. Type "->" in C and you should be expecting auto-list members to come up.
Auto-complete is a "hinting" system. It will display a list of choices, but does not complete anything unless you hit Tab or select an item in the list and hit Enter. It will not select anything automatically, unless you configure it to "Auto select unique items".
Auto-list members (and the other Context Tagging auto-list options) are more aggressive, because they work on the assumption that they have already done a fair amount of symbol analysis and they are attempting to display all the symbols visible in your current scope. Of course, if you tagging isn't configured correctly, symbols might be missing. Unfortunately, Context Tagging can't know about symbols it was never told about.
Auto-list members has been implemented this way since version 4.0 of Visual SlickEdit. Now is not a good time to change it's behavior in a fundamental manner. The corner cases that would be fixed would be overpowered by the mainstream cases that would be crippled. When we merge the features, we can pull auto-list members under the umbrella of auto-complete, and it will therefore become a hinting system (and never replace text unless you specifically select something from the list).
Finally, to address your second concern: Auto-list parameters has a lot of work to do. It not only finds symbols in your current scope, but it also analyzes their types and determines if they might be assignment compatible with the current argument for the function you are calling. To make that problem more tractable, we limit the search to locals, class members, and globals in the current file. So, yes, there may be a global in another file that auto-list parameters doesn't see.
If you feel like auto-list parameters or auto-list compatible values are getting in your way, you should turn them OFF. You can easily bring them up on-demand by hitting Alt+Comma. The main reason that we have them ON by default is so that users will learn that they exist. Otherwise, these great features would be completely buried.