xindy is an index processor, more powerful than makeindex, that has full Unicode support, and allows many levels within an index.
But as no more than three levels is defined by default, it won't work "out of the box": you have to define your own xindy style file, and redefine the index environment. I'm stealing some code from Herbert, which he posted at the xindy mailing list, and adapting it to memoir.
The style file
You can create a new file called e.g. style1.xdy, containing the following line:
(markup-indexentry :open "~n \subIIIitem " :depth 3)
and place it in the same folder as your document. In the example below, as in Herberts code, this is done by the filecontents* environment. I suppose placing the file in one of the folders where xindys style files are found, will also work, e.g. texmf/xindy/modules/styles/.
The document
Compile with:
xelatex file.tex
texindy -M style1.xdy file.idx
xelatex file.tex
\documentclass[12pt]{memoir}
\usepackage{filecontents}
\begin{filecontents*}{style1.xdy}
(markup-indexentry :open "~n \subIIIitem " :depth 3)
\end{filecontents*}
\makeatletter
\newcommand\subIIIitem{\@idxitem \hspace*{40\p@}}
\renewenvironment{theindex}{%
\clearforchapter
\if@twocolumn
\@restonecolfalse
\else
\@restonecoltrue
\fi
\ifonecolindex
\onecolumn
\chapter*{\indexname}
\preindexhook
\else
\setlength{\columnseprule}{\indexrule}%
\setlength{\columnsep}{\indexcolsep}%
\twocolumn[\@makeschapterhead{\indexname}
\preindexhook]%
\fi
\indexmark
\ifnoindexintoc\else
\phantomsection
\addcontentsline{toc}{chapter}{\indexname}%
\fi
\thispagestyle{indextitlepagestyle}\parindent\z@
\parskip\z@ \@plus .3\p@\relax
\let\item\@idxitem%
\raggedright\small\let\item\@idxitem \parskip .0pt\@plus .3\p@{}}
\makeatother
\usepackage{makeidx}\makeindex
\begin{document}
Lorem ipsum.
\index{Christian Writings!Origen!Homilies!1.1}
\index{Christian Writings!New Testament!Matthew!1.1}
\index{Christian Writings!Shepherd of Hermas!1.1}
\printindex
\end{document}
This produces:

makeindex, that allows for more than three index levels. You have to create a xindy style file though. Herbert shows an example in this post on the Xindy mailing list (note also the last post). I'm not posting this as an answer as I couldn't actually make it work myself (having some problems running Xindy in Windows ...). – Torbjørn T. Nov 23 '11 at 19:34splitindexpackage). – lockstep Nov 23 '11 at 22:30