One solution is to put a label at the beginning and at the end of each footnote. At the beginning of a footnote, if the labels of the previous one are different, it means that it was split. If the current footnote starts on the page where the previous one ends, then insert a vertical skip.
\newcounter{footnotecount} % footnote counter
\newlength\splitfootnoteskip % skip added after a split footnote
% the following makes \splitfootnoteskip equal to \baselineskip inside footnotes
\begingroup
\footnotesize
\global\setlength\splitfootnoteskip{\baselineskip}
\endgroup
\makeatletter
% save the original definition of \@footnotetext
\let\kernel@footnotetext\@footnotetext
% and redefine it to insert labels
\renewcommand\@footnotetext[1]{%
\check@splitfn
\stepcounter{footnotecount}%
\kernel@footnotetext{%
\edef\next{\noexpand\label{fnstart\thefootnotecount}}\next
\ignorespaces#1%
\edef\next{\noexpand\label{fnend\thefootnotecount}}\next}}
% check whether the previous note was split
% if \c@footnotecount is 0, this is the first footnote.
% Otherwise, check whether both labels are defined and equal.
% If they are both defined but different, and the labels for the current
% footnote are defined, check whether the current footnote starts on the
% page where the previous one ends.
% If so, insert \vskip\splitfootnoteskip
\newcommand\check@splitfn{%
\ifnum\c@footnotecount=\z@\else
\begingroup
\expandafter\let\expandafter\tempa\csname r@fnend\the\c@footnotecount\endcsname
\ifx\tempa\relax\else
\expandafter\ifx\csname r@fnstart\the\c@footnotecount\endcsname\tempa\else
\count@=\c@footnotecount
\advance\count@ 1\relax
\expandafter\let\expandafter\tempb\csname r@fnstart\the\count@\endcsname
\ifx\tempb\relax\else
\edef\tempa{\expandafter\@secondoftwo\tempa}%
\edef\tempb{\expandafter\@secondoftwo\tempb}%
\ifx\tempa\tempb
\insert\footins{\vskip\splitfootnoteskip}%
\fi
\fi
\fi
\fi
\endgroup
\fi
}
\makeatother