List returned by drush site-alias is correct, but drush @sites finds an incorrect list
The drush maintainers avoid multisite, so there is a possibility that some bugs might exist here.  The version of Drush that you are using is very old, though; upgrading to Drush 6 would be advisable.  @sites might even work for you then, as some work has been done for multisites and symlinks since Drush 4.

The best thing to do, however, would probably be to make an alias group.  Make a file called /etc/drush/groupname.aliases.drushrc.php, and define aliases 'e1', etc. as you show above, one for each of your multisites, all in the same alias file.  Then, simply:

drush @e1 status - show status on just one site

drush @groupname status - show status on all sites defined in the aliases file 'groupname'