Though I strongly recommend the answer provided by @UlrikeFischer for the problem at hand, for the more general question on how to expand a macro inside of a key list the following defines such a preprocessor using expkv.
This allows to use expkv's expansion notation to specify precise expansions of single list elements.
In the following example I use these expansion rules:
o\r expand the first token once (o) and reinsert the result as key=value input (\r)
R expand the single token once (or if it's a register, expand to the register's contents), then reinsert the result as key=value input (not usable for the macro taking argument \enumopts).
\documentclass{article}
\usepackage{expkv}
\makeatletter
\newcommand\kvpreproc[2]
{%
\expanded
{\unexpanded{#1}{\expanded{\ekvparse\kvpreproc@k\kvpreproc@kv{#2}}}}%
}
\newcommand\kvpreproc@k[1]{, {\unexpanded{#1}}}
\newcommand\kvpreproc@kv[2]{, {\unexpanded{#1}}= {\unexpanded{#2}}}
\makeatother
\usepackage{enumitem}
\newcommand{\enumopts}[1]{label={#1}\alph), ref={#1}\alph}
\newcommand\moreopts{labelsep=1em}
\begin{document}
\kvpreproc{\begin{enumerate}[}{nosep, o\r: \enumopts{A}, R: \moreopts}]
\item foo
\item bar
\item baz
\end{enumerate}
\kvpreproc{\begin{enumerate}[}{nosep, o\r: \enumopts{A}}]
\item foo
\item bar
\item baz
\end{enumerate}
\end{document}

setlistfromenumitempackage → https://tex.stackexchange.com/questions/313463/changing-the-default-numbering-scheme-in-enumerate-environment. in the general case, you need to learn some TeX programming. – user202729 Nov 29 '23 at 11:44enumitemwas usingexpkvas the key=value implementation you could use its expansion notation. You could even write a wrapper usingexpkvto have arbitrary key lists with expansion notation, but I guess simply defining a new key forenumitemas done in the accepted answer is easier and way more straight forward... :) – Skillmon Nov 29 '23 at 16:05