Similar to Herbert's solution. This does not use internal macros, but it does not works for overlays.
\documentclass{beamer}
\usetheme{Frankfurt}
\begingroup
\usebeamercolor{itemize item}
\xglobal\colorlet{itemizefg}{fg}
\endgroup
\newcommand*\citem[1][itemizefg]{%
\setbeamercolor{item projected}{bg=#1}\item}
\begin{document}
\begin{frame}{Foo}{bar}
\begin{itemize}
\citem blue
\citem[red] red
\citem blue
\end{itemize}
\end{frame}
\end{document}
Here is a revised solution using overlay. I changed the requested syntax:
\documentclass{beamer}
\usetheme{Frankfurt}
\colorlet{myitem}{red}
\newenvironment{icolorenv}{%
\begin{altenv}%
{\usebeamertemplate{alerted text begin}
\setbeamercolor{alerted text}{fg=myitem}
\usebeamercolor{alerted text}}
{\usebeamertemplate{alerted text end}}
{\color{.}}{}}
{\end{altenv}}
\newcommand{\icolor}[2]{\seticolor{#1}%
\begin{icolorenv}#2\end{icolorenv}}
\newcommand{\seticolor}[1]{\xglobal\colorlet{myitem}{#1}}
\begin{document}
\begin{frame}{Foo}{bar}
\begin{itemize}
\item blue\pause
\icolor{green}{\item green}\pause
\item blue\pause
\end{itemize}
\begin{itemize}[<+->]
\item blue
\seticolor{orange}\item<+-|icolor@+-> orange
\item green
\end{itemize}
\end{frame}
\end{document}