The only difference as far as spacing is concerned is that \[...\] will use \abovedisplayskip and \belowdisplayskip instead of \abovedisplayshortskip and \belowdisplayshortskip that would be used by $$...$$ in case the math display is started in vertical mode. The code
\setbox0=\vbox{\hrule height 0pt % to avoid gobbling vskips
\[a=b\]
A word.}
\showthe\ht0
\setbox0=\vbox{\hrule height 0pt % to avoid gobbling vskips
$$a=b$$
A word.}
\showthe\ht0
\showthe\abovedisplayskip
\showthe\belowdisplayskip
\showthe\abovedisplayshortskip
\showthe\belowdisplayshortskip
will give the following information:
?
> 44.0pt.
l.27 \showthe\ht0
?
> 30.0pt.
l.32 \showthe\ht0
?
> 10.0pt plus 2.0pt minus 5.0pt.
l.33 \showthe\abovedisplayskip
?
> 10.0pt plus 2.0pt minus 5.0pt.
l.34 \showthe\belowdisplayskip
?
> 0.0pt plus 3.0pt.
l.35 \showthe\abovedisplayshortskip
?
> 6.0pt plus 3.0pt minus 3.0pt.
l.36 \showthe\belowdisplayshortskip
The 14pt difference is exactly the result of (10+10)-(0+6). Actually the \hrule height 0pt here does almost nothing because of \abovedisplayshortskip=0pt.
This doesn't happen when amsmath is loaded (the "short" skips are used in this case).
The definition of \[ in the LaTeX kernel is
\def\[{%
\relax\ifmmode
\@badmath
\else
\ifvmode
\nointerlineskip\makebox[.6\linewidth]{}
\fi
$$
\fi}
that explains why the "non short" skips are used at the beginning of a paragraph: the LaTeX kernel starts a paragraph with an empty line long enough to prevent the use of the "short" skips. I believe that this has been added by Lamport to cope with authors that leave an empty line before \[.
$$...$$is that it won't work with anything that modifies displayed math (e.g. the[fleqn]option) how important is it to worry about the vertical spacing issue? – Alan Munn Jun 20 '11 at 03:43