This modifies multline
to do (I think) as you ask. The result looks fairly unreadable to me, but perhaps I'm just not used to reading Russian articles.
multline
like all AMS alignments grabs the environment body and sets it twice to measure it, this just modifies it so that if it is too wide on that first pass, =
is redefined and the measuring pass is repeated.

You could probably do something similar with any of the amsmath alignments.
\documentclass{article}
\usepackage{amsmath}
\DeclareMathSymbol{\realequals}{\mathrel}{operators}{"3D}
\makeatletter
{\catcode`=\active \gdef={\realequals{}\\{}\realequals} }
\def\multline@#1{%
\Let@
\@display@init{\global\advance\row@\@ne \global\dspbrk@lvl\m@ne}%
\chardef\dspbrk@context\z@
\restore@math@cr
\let\tag\tag@in@align
\global\tag@false \global\let\raise@tag\@empty
\mmeasure@{#1}%
\ifdim\totwidth@>.7\displaywidth
\mathcode`=\mathcode`' %
\mmeasure@{#1}%
\toks@{#1}%
\else
\toks@{\hfill#1\hfill}%
\fi
\let\tag\gobble@tag \let\label\@gobble
\tabskip \if@fleqn \@mathmargin \else \z@skip \fi
\totwidth@\displaywidth
\if@fleqn
\advance\totwidth@-\@mathmargin
\fi
\halign\bgroup
\hbox to\totwidth@{%
\if@fleqn
\hskip \@centering \relax
\else
\hfil
\fi
\strut@
$\m@th\displaystyle{}##\endmultline@math
\hfil
}%
\crcr
\if@fleqn
\hskip-\@mathmargin
\def\multline@indent{\hskip\@mathmargin}% put it back
\else
\hfilneg
\def\multline@indent{\hskip\multlinegap}%
\fi
\iftagsleft@
\iftag@
\begingroup
\ifshifttag@
\rlap{\vbox{%
\normalbaselines
\hbox{%
\strut@
\make@display@tag
}%
\vbox to\lineht@{}%
\raise@tag
}}%
\multline@indent
\else
\setbox\z@\hbox{\make@display@tag}%
\dimen@\@mathmargin \advance\dimen@-\wd\z@
\ifdim\dimen@<\multlinetaggap
\dimen@\multlinetaggap
\fi
\box\z@ \hskip\dimen@\relax
\fi
\endgroup
\else
\multline@indent
\fi
\else
\multline@indent
\fi
\the\toks@%
}
\begin{document}
\begin{multline}
ax^2 +bx^3 +dx^4 =
(1+x)^9 -(a+x)(x+a)^3 =
a+b
=5
\end{multline}
\begin{multline}
a=5
\end{multline}
\begin{multline}
ax^2 +bx^3 +dx^4 +ex^5 =
ax^2 +bx^3 +dx^4 =
(1+x)^9 -(a+x)(x+a)^3 =
a+b
=5
\end{multline}
\end{document}
or with first and last lines centred (which is still pretty hard to read)

\documentclass{article}
\usepackage{amsmath}
\DeclareMathSymbol{\realequals}{\mathrel}{operators}{"3D}
\makeatletter
{\catcode`=\active \gdef={\realequals{}\\{}\realequals} }
\def\multline@#1{%
\Let@
\@display@init{\global\advance\row@\@ne \global\dspbrk@lvl\m@ne}%
\chardef\dspbrk@context\z@
\restore@math@cr
\let\tag\tag@in@align
\global\tag@false \global\let\raise@tag\@empty
\mmeasure@{#1}%
\ifdim\totwidth@>.7\displaywidth
\mathcode`=\mathcode`' %
\mmeasure@{#1}%
\toks@{\hfil#1\hfil}%
\else
\toks@{\hfill#1\hfill}%
\fi
\let\tag\gobble@tag \let\label\@gobble
\tabskip \if@fleqn \@mathmargin \else \z@skip \fi
\totwidth@\displaywidth
\if@fleqn
\advance\totwidth@-\@mathmargin
\fi
\halign\bgroup
\hbox to\totwidth@{%
\if@fleqn
\hskip \@centering \relax
\else
\hfil
\fi
\strut@
$\m@th\displaystyle{}##\endmultline@math
\hfil
}%
\crcr
\if@fleqn
\hskip-\@mathmargin
\def\multline@indent{\hskip\@mathmargin}% put it back
\else
\hfilneg
\def\multline@indent{\hskip\multlinegap}%
\fi
\iftagsleft@
\iftag@
\begingroup
\ifshifttag@
\rlap{\vbox{%
\normalbaselines
\hbox{%
\strut@
\make@display@tag
}%
\vbox to\lineht@{}%
\raise@tag
}}%
\multline@indent
\else
\setbox\z@\hbox{\make@display@tag}%
\dimen@\@mathmargin \advance\dimen@-\wd\z@
\ifdim\dimen@<\multlinetaggap
\dimen@\multlinetaggap
\fi
\box\z@ \hskip\dimen@\relax
\fi
\endgroup
\else
\multline@indent
\fi
\else
\multline@indent
\fi
\the\toks@%
}
\begin{document}
\begin{multline}
ax^2 +bx^3 +dx^4 =
(1+x)^9 -(a+x)(x+a)^3 =
a+b
=5
\end{multline}
\begin{multline}
a=5
\end{multline}
\begin{multline}
ax^2 +bx^3 +dx^4 +ex^5 =
ax^2 +bx^3 +dx^4 =
(1+x)^9 -(a+x)(x+a)^3 =
a+b
=5
\end{multline}
\end{document}
breqn
? not perfect (and it does need work), but perhaps useful.align
and friends allow page breaking if you issue\allowdisplaybreaks
and don't number every line if you usealign*
rather thanalign