Underfull \vbox in each longtable... can it be fixed or must it be ignored?

The underfull box is in fact the \hline at the start of the table (entered just after \endlastfoot)

If instead you remove it from there and put it at the end of the first head, as below, it all works out.

The reason for this eludes me at present but I'm sure it is all explained in detail in the package documentation......

\documentclass[english,11pt,a4paper]{article}
\usepackage{longtable}
\showboxdepth10
\showboxbreadth10

\newcommand{\demounderfullvbox}{%
    \begin{longtable}{|l|p{2in}|}
        \hline%
    \endfirsthead
    %
    \hline
    \multicolumn{2}{|l|}{\textsl{\ldots continued from previous page}}
    \endhead
    %
    \multicolumn{2}{|l|}{\textsl{will be continued on next page\ldots}}\\
    \hline
    \endfoot
    %
    \hline
    \endlastfoot
    %
    aa: & 4711\\
    \hline%
    aaa: & 2\\
    \hline%
    aaaa: & 4711-2
    \end{longtable}%
}

\begin{document}
\newpage
%
\demounderfullvbox
\demounderfullvbox
\demounderfullvbox

\end{document}

The example can be simplified to

\showboxdepth=\maxdimen
\showboxbreadth=\maxdimen

\documentclass{article}
\usepackage{longtable}[2004/02/01]
\begin{document}
  \begin{longtable}{l}
    \hline
    x
  \end{longtable}
\end{document}

The .log file contains:

Package: longtable 2004/02/01 v4.11 Multi-page Table package (DPC)
[...]
Underfull \vbox (badness 10000) detected at line 10

\vbox(8.39996+0.0)x345.0
.\penalty 10000
.\hbox(0.4+0.0)x345.0, glue set 163.8611fill
..\glue(\tabskip) 0.0 plus 1.0fill
..\hbox(0.4+0.0)x17.27782, glue set 17.27782fill
...\leaders 0.0 plus 1.0fill
....\rule(0.4+0.0)x*
..\glue(\tabskip) 0.0 plus 1.0fill

Package longtable splits its contens in chunks (in \LT@start):

\dimen@ii\vfuzz
\vfuzz\maxdimen
  \setbox\tw@\copy\z@
  \setbox\tw@\vsplit\tw@ to \ht\@arstrutbox
  \setbox\tw@\vbox{\unvbox\tw@}%
\vfuzz\dimen@ii

Because of \unvbox\tw@ it does not matter if the splitted box by \vsplit is too large or too small. \setbox\tw@\vbox{\unvbox\tw@} sets the box in its natural size. Overfull boxes are catched by \vfuzz. If \hline starts the table, then \hline and the next line is too large for \ht\@arstrutbox. But the line itself is too small for \ht\@arstrutbox and generates the underfull \vbox.

BTW, the documentation says:

Also \hline may be used, as in tabular.

Therefore I consider this behavior as bug that can be fixed by setting \vbadness to 10000, see lines marked with (added):

\makeatletter
\def\LT@start{%
  \let\LT@start\endgraf
  \endgraf\penalty\z@\vskip\LTpre
  \dimen@\pagetotal
  \advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
  \advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
  \advance\dimen@ \ht\LT@foot
  \edef\restore@vbadness{\vbadness\the\vbadness\relax}% (added)
  \vbadness=\@M % (added)
  \dimen@ii\vfuzz
  \vfuzz\maxdimen
    \setbox\tw@\copy\z@
    \setbox\tw@\vsplit\tw@ to \ht\@arstrutbox
    \setbox\tw@\vbox{\unvbox\tw@}%
  \vfuzz\dimen@ii
  \restore@vbadness % (added)
  \advance\dimen@ \ht
        \ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi
  \advance\dimen@\dp
        \ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi
  \advance\dimen@ -\pagegoal
  \ifdim \dimen@>\z@\vfil\break\fi
      \global\@colroom\@colht
  \ifvoid\LT@foot\else
    \advance\vsize-\ht\LT@foot
    \global\advance\@colroom-\ht\LT@foot
    \dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@
    \maxdepth\z@
  \fi
  \ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi\nobreak
  \output{\LT@output}%
}
\makeatother