There are three types of “full expansion”, corresponding to three argument types:
e means “expandable full expansion”, corresponding to the primitive \expanded
x means “unexpandable full expansion”, corresponding to the trick
\begingroup\edef\x{\endgroup <tokens to be expanded>}\x
f means “recursive expansion“ and is triggered by \romannumeral.
Until 2019, \expanded was only available in LuaTeX, but with the 2019 release of TeX Live, this new primitive is present in all engines, so the l3kernel started to employ it in preference to f. See Does \expanded replace the \romannumeral trick for expansion?
The filled star denotes kernel functions that can be used in all three types of full expansion, the hollow star is for functions that do their job only in e or x expansion, because it's impossible to achieve their final output by recursive f-expansion.
As mentioned in the linked thread, f-expansion is less needed nowadays that e-expansion is available.
f), those with the hollow star are fully expandable only forxoreexpansion. Now that we haveein all engines, the distinction is less important, but there are cases wherefexpansion is still useful. – egreg Apr 28 '22 at 21:42\cs_to_str:N.) – Douglas Myers-Turnbull Apr 29 '22 at 00:58