When I run emerge with a wildcard dependency atom, the atom is converted into a simple package name before being added to he world file. For example: # emerge --noreplace '=sys-devel/gcc-4.9*' Calculating dependencies... done! >>> Recording sys-devel/gcc in "world" favorites file... If I manually edit /var/lib/portage/world, I am able to add the desired wildcard dependency atom, and emerge appears to interpret it correctly on subsequent @world updates.
The thing is, having specific versions in the world file is likely to trigger conflicts or missed updates sooner or later. The existing logic uses some heuristics to decide whether to add a slot to the atom: https://gitweb.gentoo.org/proj/portage.git/tree/pym/_emerge/create_world_atom.py?h=portage-2.3.2