Hmmm \cite takes a comma separated list of cite keys, if you use \cite{aaa,bbb,} then you get a warning about an empty entry from the trailing comma, but if the list is completely empty then the whole thing is skipped.
This is actually a feature of LaTeX's \@for loop macro:
\documentclass{article} \makeatletter \begin{document} \@for \tmp:=aa,bb,\do{\typeout{1 [\tmp]}} \@for \tmp:=\do{\typeout{2 [\tmp]}} \end{document}
produces terminal and log output
1 [aa] 1 [bb] 1 []
where the first loop includes an iteration with an empty value but the second loop has no iterations at all.
This might be a bit unexpected but \@for has been that way since the earliest latex releases, so almost 40 years now and it is used in multiple places in the latex format and in packages.
\@for is documented as accepting (and by implication skipping) lists of length 0
% \@for NAME := LIST \do {BODY} : Assumes that LIST expands to A1,A2, % ... ,An . % Executes BODY n times, with NAME = Ai on the i-th iteration. % Optimized for the normal case of n = 1. Works for n=0.
so arguably the unexpected behaviour is that the trailing comma isn't ignored.
\cite{Goodfellow2014a,somethingelse,}then you do get a warning about the empty entry from the trailing , but a completely empty list is silently accepted