I realize this may fall into the category of "it's not exacly right, but it's always been that way, so we'd better leave it alone".
man emerge tells me that the set called "world" contains both the "system" set and the "selected" set. It defines the "selected" set as containing "the user-selected "world" packages that are listed in /var/lib/portage/world".
Shouldn't that file be called /var/lib/portage/selected instead? That would mean the @selected set refers to the file called "selected". That would be more sensible than the current situation where @selected refers to a file called "world", but @world refers to @selected plus @system.