Annahme: Das unterschiedliche Verhalten dürfte daran liegen, dass \cvline die allgemeinere Anweisung ist, also mehr Spielraum lässt.
Um den Punkt bei \cventry weg zu bekommen, bleibt wohl nur, \cventry umzudefinieren:
\renewcommand*{\cventry}[6]{%
\cvline{#1}{%
{\bfseries#2}%
\ifx#3\else{, {\slshape#3}}\fi%
\ifx#4\else{, #4}\fi%
\ifx#5\else{, #5}\fi%
% .%<--- DIESE ZEILE AUSKOMMENTIERT
\ifx#6\else{\newline{}\begin{minipage}[t]{\linewidth}\small#6\end{minipage}}\fi
}}%
Da hier keine internen Anweisungen (solche mit »@« im Namen) vorkommen, kannst Du die Umdefinierung irgendwo in die Dokumentpräambel packen. Ich habe die Änderung gegenüber der Originaldefinition markiert.
BTW: Ich halte obige Definition bzw. die Originaldefinition für fehlerhaft. Bei den ganzen \ifx... wird nämlich keineswegs getestet, ob das jeweilige Argument leer ist. Wenn das Argument wirklich leer ist, wird getestet, ob \else gleich { ist. Expandiert das Argument nur zu einem Token, wird getestet ob dieses \else ist. Wenn das Argument zu mehreren Token expandiert wird getestet, ob die ersten beiden Token gleich sein. Damit wird also bei
\cventry{A}{B}{}{C}{DE}{FF}
für das dritte Argument \else mit { verglichen. Die sind ungleich, das Argument wird nicht ausgegeben, weil für TeX kein else-Teil existiert. C wird mit \else verglichen. Die sind ungleich. Das Argument wird nicht ausgegeben, weil \else bereits gelesen wurde und damit für TeX kein else-Teil mehr existiert. D wird mit E verglichen, die sind ungleich, das Argument wird über den else-Teil ausgegeben. F mit F verglichen, die sind gleich und FF wird nicht ausgegeben. Noch schlimmer wird es mit
\cventry{A}{B}{C}{AALFISCHEN}{AALFISCHEN}{AALFISCHEN}{AALFISCHEN}
Weil hier das Argument 3 bis 6 mit zwei gleichen Buchstaben beginnt, wird nicht der else-Teil, sondern der then-Teil ausgeführt. In diesem befindet sich der Expansionsrest LFISCHEN der darüber ohne die Zusätze des else-Teils ausgegeben wird. Das Ergebnis wird damit grob falsch, was man besonders beim 6. Argument sofort erkennen kann.
Fazit: moderncv ist grob fehlerhaft! Du solltest einen Bugreport an den Autor schreiben, damit er die Vergleiche beispielsweise in der Form
\ifx\relax#3\relax ... \else ...\fi
implementiert. In dem Fall gibt es nur noch ein Problem, wenn das Argument mit \relax beginnt. Alternativ kann er hier auch auf das Paket ifthen zurückgreifen, wie er das an anderer Stelle auch schon tut.