alias_compare calls strcasecmp instead of using the C locale, so the behavior of setlocale WRT alias comparison will depend on what the active locale is. read_alias_file, one of the functions that calls the above, also calls isspace while parsing the alias file, which again brings in locale-dependent behavior into what locale will become effective.
The first issue has already been fixed long ago. The latter isn't a real issue as the locale.alias file isn't supposed to contain non-ASCII whitespace.