Version 5.9: Which components does "drush site-alias --local" look for in ~/aliases.drushrc.php?
The filtering is done in the _drush_sitealias_user_specified_list() function with

if ((array_key_exists('remote-site', $one_site)) || (!array_key_exists('root', $one_site)) || (!is_dir($one_site['root']))) {
  unset($site_list[$site_name]);
}


So it looks like the remote-site option is used. But the documentation for the alias settings does mention a this option. So this looks like a bug.

Note: the same condition is still used in the latest version (see https://github.com/drush-ops/drush/blob/master/commands/core/sitealias.drush.inc#L164).