Lars Hellström wrote:
>>     }
>>     \cs_generate_variant:Nn \foo_internal:n {V}
> 
> I thought O was the appropriate variant for expanding a token list
> control sequence?

The re-factor saw us drop "O", and sort-of downgrade "o" (we use it
less). The V specifier lets you write both

\foo_internal:V \l_my_tl  % A macro at the TeX level

and

\foo_internal:V \l_my_toks % A toks at the TeX level

whereas \foo_internal:o would need

\foo_internal:o {\l_my_tl}
\foo_internal:o { \toks_use:N \l_my_toks }

So V is preferred for accessing variables (as the internal structure is
not important), and o is meant for cases which go beyond simply getting
a variable value "out".
-- 
Joseph Wright