This is my attempt.
Add this to your preamble:
\usepackage{calc}
\newlength{\alength}
\newlength{\blength}
\newif\ifprinted\printedtrue
\newcommand{\myitem}[1]{%
\setlength{\alength}{\textheight-\the\pagetotal-10pt}
\setlength{\blength}{\totalheightof{\parbox{\linewidth}{#1}}}
\ifprinted
\ifodd\value{page}
\ifnum\pagetotal>0
\ifnum\alength<\blength
\clearpage
\item #1
\printedtrue
\else
\item #1
\printedtrue
\fi
\fi
\else
\printedfalse
\ifnum\alength>\blength
\item #1
\printedtrue
\fi
\fi
\fi
}
\newenvironment{myenumerate}{\begin{enumerate}\item[]}{\end{enumerate}}
The new defined command \myitem
is to be used instead of \item
inside the myenumerate
environment in this way:
\myitem{What is the answer to life the universe and everything?}
instead of
\item What is the answer to life the universe and everything?
The new environment myenumerate
is defined to avoid errors when no \myitem
s are printed (it contains a "phantom" item \item[]
)
\myitem
s are printed only if they are in a non-empty odd page or if there is enough space in an even page.
The following example explains it a bit better:
\documentclass[openright]{book}
\usepackage{lipsum}
\usepackage{calc}
\newlength{\alength}
\newlength{\blength}
\newif\ifprinted\printedtrue
\newcommand{\myitem}[1]{%
\setlength{\alength}{\textheight-\the\pagetotal-10pt}
\setlength{\blength}{\totalheightof{\parbox{\linewidth}{#1}}}
\ifprinted
\ifodd\value{page}
\ifnum\pagetotal>0
\ifnum\alength<\blength
\clearpage
\item #1
\printedtrue
\else
\item #1
\printedtrue
\fi
\fi
\else
\printedfalse
\ifnum\alength>\blength
\item #1
\printedtrue
\fi
\fi
\fi
}
\newenvironment{myenumerate}{\begin{enumerate}\item[]}{\end{enumerate}}
\begin{document}
\chapter{Introduction}
\lipsum[1-6]
\begin{myenumerate}
\myitem{What is the answer to life the universe and everything?}
\myitem{What is the answer to life the universe and everything?}
\myitem{What is the answer to life the universe and everything?}
\myitem{What is the answer to life the universe and everything?}
\myitem{What is the answer to life the universe and everything?}
\myitem{What is the answer to life the universe and everything?}
\myitem{What is the answer to life the universe and everything?}
\myitem{What is the answer to life the universe and everything?}
\myitem{What is the answer to life the universe and everything?}
\myitem{What is the answer to life the universe and everything?}
\myitem{What is the answer to life the universe and everything?}
\myitem{What is the answer to life the universe and everything?}
\myitem{What is the answer to life the universe and everything?}
\myitem{What is the answer to life the universe and everything?}
\myitem{What is the answer to life the universe and everything?}
\end{myenumerate}
\chapter{Some more stuff}
\lipsum
\end{document}
As you can see you have 15 \myitem
s but the 15th is not printed because there is not enough space in the page.

Playing a little with \lipsum
you can see that it works fine in even and odd pages.
The ifprinted
has been added to avoid printing subsequent \myitem
s if the previous has not been printed.