beamer: best way to span long enumerations on different frames

This allows a frame break at 80% of the page:

\documentclass{beamer}
\begin{document}

\begin{frame}[allowframebreaks=0.8,t]{title}{}
  \begin{enumerate}
  \item 1st
  \item 2nd
  \item 3rd
  \item 4th
  \item 5th
  \item 6th
  \item 7th
  \item 8th
  \item 9th
  \item 10th
  \item 11th
  \item 12th
  \item 13th
  \item 14th
  \item 15th
  \item 16th
  \item 17th
  \item 18th
  \end{enumerate}
\end{frame}

\end{document}

You may define your own enumeration list using enumerate and (re)storing the counter:

\documentclass{beamer}

\makeatletter
\newenvironment{cenumerate}{%
  \enumerate
  \setcounter{\@enumctr}{\csname saved@\@enumctr\endcsname}%
}{%
  \expandafter\xdef\csname saved@\@enumctr\endcsname{\the\value{\@enumctr}}%
  \endenumerate
}
\newenvironment{cenumerate*}{%
  \enumerate
}{%
  \expandafter\xdef\csname saved@\@enumctr\endcsname{\the\value{\@enumctr}}%
  \endenumerate
}
\makeatother

\begin{document}

\begin{frame}
  \begin{cenumerate*}% starting a new continous enumerate
  \item 1st
  \item 2nd
  \item 3rd
  \item 4th
  \end{cenumerate*}
\end{frame}

\begin{frame}
  \begin{cenumerate}
  \item 5th
  \item 6th
  \item 7th
  \item 8th
  \end{cenumerate}
\end{frame}

\begin{frame}
  \begin{cenumerate}
  \item 9th
  \item 10th
  \item 11th
  \item 12th
  \end{cenumerate}
\end{frame}

\end{document}

But this would fail, if you use step by step enumerations like:

\begin{frame}
  \begin{cenumerate}
  \item 5th
  \item<2-4> 6th
  \item<3-4> 7th
  \item<4> 8th
  \end{cenumerate}
\end{frame}