How does \footnotesep work anyway?

Apart from similar code for minipage footnotes, the only use of \footnotesep in the standard format version of footnotes is its two occurrences in the definition of \foonotetext packages such as footmisc will have similar code, depending on options used.

\long\def\@footnotetext#1{\insert\footins{%
    \reset@font\footnotesize
    \interlinepenalty\interfootnotelinepenalty
    \splittopskip\footnotesep
%                 %%%%%%%%%%%
    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
    \hsize\columnwidth \@parboxrestore
    \protected@edef\@currentlabel{%
       \csname p@footnote\endcsname\@thefnmark
    }%
    \color@begingroup
      \@makefntext{%
        \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
%                 %%%%%%%%%%%
    \color@endgroup}}%

the first use locally sets \splittopskip so that if a footnote is split over a page the baseline of the section carried over is \footnotesep from the top of the insertion box.

The second use is for the spacing at the start of each footnote where a rule with zero depth and width and height \footnotesep is inserted. Also at the end of each footnote a rule with zero height and width and the depth of a \strut is inserted.

There is no particular rule that says either \footnotesep or the height of a \strut should be 70% of the \baselineskip each of these lengths can be set interdependently.

In your case if you add \showoutput you will see each line of footnote text is

 .\hbox(10.425+4.08003)x369.88582, glue set 265.5038fil

So the height of the box is coming from \footnotesep and the depth coming from \dp\strutbox adding up to a little over 14.404pt so slightly more than your grid spacing. You need to set the strutbox to be of a size suitable for your baseline, and set \footnotesep to \ht\strutbox in order to get exact spacing here. (Or at least set \footnotesep to \dimexpr\baselineskip-\dp\strutbox )


The problem is that you use \small with a \baselineskip of 14.5pt. \small itself uses a \baselineskip of 13.6pt. This means that the \strut of \small has a depth of 0.3*13.6pt = 4.08pt, whereas with a \baselineskip of 14.5pt that would normally be 0.3*14.5pt = 4.35pt. As setting \baselineskip does not alter the \strut you run with the \strut of \small, thus you miss 4.35-4.08=0.27pt. You have to compensate this by adding that to \footnotesep, which means that the correct value is 10.15+0.27=10.42pt, slightly smaller than your estimated value.