I have a first solution, which is a bit verbose because it needs first this [great code][1] and then it adds a third empty column, but for now it's the best I can do. I'll also look at overlayarea as proposed by samcarter.
\documentclass[]{beamer}
% https://tex.stackexchange.com/questions/44218/set-image-to-full-all-available-space-in-beamer-without-overlapping-other-eleme/44298#44298
% Chate sidebarthemefalse to sidebarthemetrue if you have a sidebar
\newif\ifsidebartheme
\sidebarthemefalse
\newdimen\contentheight
\newdimen\contentwidth
\newdimen\contentleft
\newdimen\contentbottom
\makeatletter
\newcommand*{\calculatespace}{%
\contentheight=\paperheight%
\ifx\beamer@frametitle\@empty%
\setbox\@tempboxa=\box\voidb@x%
\else%
\setbox\@tempboxa=\vbox{%
\vbox{}%
{\parskip0pt\usebeamertemplate***{frametitle}}%
}%
\ifsidebartheme%
\advance\contentheight by-1em%
\fi%
\fi%
\advance\contentheight by-\ht\@tempboxa%
\advance\contentheight by-\dp\@tempboxa%
\advance\contentheight by-\beamer@frametopskip%
\ifbeamer@plainframe%
\contentbottom=0pt%
\else%
\advance\contentheight by-\headheight%
\advance\contentheight by\headdp%
\advance\contentheight by-\footheight%
\advance\contentheight by4pt%
\contentbottom=\footheight%
\advance\contentbottom by-4pt%
\fi%
\contentwidth=\paperwidth%
\ifbeamer@plainframe%
\contentleft=0pt%
\else%
\advance\contentwidth by-\beamer@rightsidebar%
\advance\contentwidth by-\beamer@leftsidebar\relax%
\contentleft=\beamer@leftsidebar%
\fi%
}
\makeatother
\begin{document}
\begin{frame}{Test}
\begin{columns}
\begin{column}{.4\textwidth}
A
\end{column}
\begin{column}{.4\textwidth}%
\only<1>{B}
\only<2>{C\\D}
\only<3>{C\\D\\E}
\only<4>{C\\D\\E\\F}
\end{column}
\begin{column}{0pt}
\calculatespace%
\vline height 0.95\contentheight
\end{column}
\end{columns}
\end{frame}
\end{document}
Edit: Here is the same thing, but with \parbox instead. The code has the same length because the "hard" part is to guess the height, and that code is needed in both solutions.
\documentclass[]{beamer}
% https://tex.stackexchange.com/questions/44218/set-image-to-full-all-available-space-in-beamer-without-overlapping-other-eleme/44298#44298
\newif\ifsidebartheme
\sidebarthemetrue
\newdimen\contentheight
\newdimen\contentwidth
\newdimen\contentleft
\newdimen\contentbottom
\makeatletter
\newcommand*{\calculatespace}{%
\contentheight=\paperheight%
\ifx\beamer@frametitle\@empty%
\setbox\@tempboxa=\box\voidb@x%
\else%
\setbox\@tempboxa=\vbox{%
\vbox{}%
{\parskip0pt\usebeamertemplate***{frametitle}}%
}%
\ifsidebartheme%
\advance\contentheight by-1em%
\fi%
\fi%
\advance\contentheight by-\ht\@tempboxa%
\advance\contentheight by-\dp\@tempboxa%
\advance\contentheight by-\beamer@frametopskip%
\ifbeamer@plainframe%
\contentbottom=0pt%
\else%
\advance\contentheight by-\headheight%
\advance\contentheight by\headdp%
\advance\contentheight by-\footheight%
\advance\contentheight by4pt%
\contentbottom=\footheight%
\advance\contentbottom by-4pt%
\fi%
\contentwidth=\paperwidth%
\ifbeamer@plainframe%
\contentleft=0pt%
\else%
\advance\contentwidth by-\beamer@rightsidebar%
\advance\contentwidth by-\beamer@leftsidebar\relax%
\contentleft=\beamer@leftsidebar%
\fi%
}
\makeatother
\begin{document}
\begin{frame}{Test}
\begin{columns}
\begin{column}{.4\textwidth}
\calculatespace
% https://tex.stackexchange.com/questions/83672/beamer-vertically-center-picture-inside-overlayarea
\parbox[t][\contentheight][t]{\linewidth}{
A
}
\end{column}
\begin{column}{.4\textwidth}%
\only<1>{B}
\only<2>{C\\D}
\only<3>{C\\D\\E}
\only<4>{C\\D\\E\\F}
\end{column}
\end{columns}
\end{frame}
\end{document}
[1]: https://tex.stackexchange.com/questions/44218/set-image-to-full-all-available-space-in-beamer-without-overlapping-other-eleme/44298#44298
overlayareaenvironment. – samcarter_is_at_topanswers.xyz Apr 24 '18 at 23:46overlayareathe problem would be the same, and also it's not possible (or I did not find the good way to proceed) to vertically center a text in anoverlayarea. However, someone tells that it's good to use\parboxinstead, see my answer for how to use it. – tobiasBora Apr 25 '18 at 00:11