AFAIK the \leavevmode results in extra vertical space because of an extra but empty paragraph before the section heading. It is not the problem, because it does not allow page breaks after the following \section.
The problem is \pagenumbering after \section. You should add/move \nopagebreak after \pagenumbering:
\documentclass{scrbook}
\usepackage{reledmac}
\usepackage[english]{babel}
\usepackage{blindtext}
\raggedbottom
\begin{document}
\chapter{Letters from 1900}
\leavevmode\pagebreak[3]\section{Letter 1}
\beginnumbering\nopagebreak
\pstart
\blindtext
\pend
\pstart
\blindtext
\pend
\endnumbering
\leavevmode\pagebreak[3]\section{Letter 2}
\beginnumbering\nopagebreak
\pstart
\blindtext
\pend
\endnumbering
\leavevmode\pagebreak[3]\section{Letter 3}
\beginnumbering\nopagebreak
\pstart
\blindtext
\pend
\endnumbering
\end{document}
However, if you really want the extra vertical space before the sections, why do you use \leavevmode to get it instead of using \RedeclareSectionCommand to increase the beforeskip value:
\documentclass{scrbook}
\usepackage{reledmac}
\usepackage[english]{babel}
\usepackage{blindtext}
\raggedbottom
\RedeclareSectionCommand[beforeskip=-10ex plus -1ex minus -.2ex]{section}
\begin{document}
\chapter{Letters from 1900}
\section{Letter 1}
\beginnumbering\nopagebreak
\pstart
\blindtext
\pend
\pstart
\blindtext
\pend
\endnumbering
\section{Letter 2}
\beginnumbering\nopagebreak
\pstart
\blindtext
\pend
\endnumbering
\section{Letter 3}
\beginnumbering\nopagebreak
\pstart
\blindtext
\pend
\endnumbering
\end{document}
If all \beginnumbering should avoid page breaks, you can patch the command:
\documentclass{scrbook}
\usepackage{reledmac}
\usepackage[english]{babel}
\usepackage{blindtext}
\raggedbottom
\RedeclareSectionCommand[beforeskip=-10ex plus -1ex minus -.2ex]{section}
\usepackage{xpatch}
\xapptocmd{\beginnumbering}{\nopagebreak}{}{}
\begin{document}
\chapter{Letters from 1900}
\section{Letter 1}
\beginnumbering
\pstart
\blindtext
\pend
\pstart
\blindtext
\pend
\endnumbering
\section{Letter 2}
\beginnumbering
\pstart
\blindtext
\pend
\endnumbering
\section{Letter 3}
\beginnumbering
\pstart
\blindtext
\pend
\endnumbering
\end{document}
Or you can define a new command:
\documentclass{scrbook}
\usepackage{reledmac}
\usepackage[english]{babel}
\usepackage{blindtext}
\raggedbottom
\RedeclareSectionCommand[beforeskip=-10ex plus -1ex minus -.2ex]{section}
\newcommand\beginnumberingnobreak{\beginnumbering\nopagebreak}
\begin{document}
\chapter{Letters from 1900}
\section{Letter 1}
\beginnumberingnobreak
\pstart
\blindtext
\pend
\pstart
\blindtext
\pend
\endnumbering
\section{Letter 2}
\beginnumberingnobreak
\pstart
\blindtext
\pend
\endnumbering
\section{Letter 3}
\beginnumberingnobreak
\pstart
\blindtext
\pend
\endnumbering
\end{document}
You could also try to detect, whether or not the \beginnumbering is following a \section or another command, that should prevent page breaks:
\documentclass{scrbook}
\usepackage{reledmac}
\usepackage[english]{babel}
\usepackage{blindtext}
\raggedbottom
\RedeclareSectionCommand[beforeskip=-10ex plus -1ex minus -.2ex]{section}
\usepackage{xpatch}
\makeatletter
\xpretocmd{\beginnumbering}{\if@nobreak\let\afterbeginnumbering\nopagebreak\else\let\afterbeginnumbering\relax\fi}{}{}
\xapptocmd{\beginnumbering}{\afterbeginnumbering}{}{}
\makeatother
\begin{document}
\chapter{Letters from 1900}
\section{Letter 1}
\beginnumbering
\pstart
\blindtext
\pend
\pstart
\blindtext
\pend
\endnumbering
\section{Letter 2}
\beginnumbering
\pstart
\blindtext
\pend
\endnumbering
\section{Letter 3}
\beginnumbering
\pstart
\blindtext
\pend
\endnumbering
\end{document}
\leavevmodeat all?! Of course, if you take out\leavevmodethen the problem disappears. What "things" are you trying to reset by using\leavevmode? I suspect that there are better ways to reset them but it is hard to say without knowing what they are...\pagebreak[3]almost forcing a page break after the chapter heading and\nopagebreak[3]allowing a page break after section headings. What is the intention of these (just removing them would appear to be the answer)\leavemodelooks wrong but it is the\[no]pagebreakthat is allowing the page break.